繁体   English   中英

Angularjs - TypeError:path必须是绝对路径或指定root到res.sendFile

[英]Angularjs - TypeError: path must be absolute or specify root to res.sendFile

我正在尝试使用angularjs创建一个联系人应用程序。 我在项目的根目录中创建了一个名为server.js的文件。 这是代码:

var express = require('express'),
app     = express();

app
    .use(express.static('./public'))
    .get('*', function (req, res) {
        res.sendfile('public/main.html');
    })
    .listen(3000);

当我转到localhost:3000时,这是出现的错误消息。

TypeError:path必须是绝对的,或者在D:\\ Workspace \\ contacts \\ server.js的ServerResponse.sendFile(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ response.js:389:11)中指定root到res.sendFile :7:7在Layer.handle [as handle_request](D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ layer.js:82:5)下一步(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ route.js:100:13)在Route.dispatch(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ route.js:81:3)在Layer.handle [as handle_request](D :\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ layer.js:82:5)在Function.proto的D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ index.js:235:24。 process_params(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ index.js:313:12)位于D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ index.js:229:12 at Function .match_layer(D:\\ Workspace \\ contacts \\ node_modules \\ express \\ lib \\ router \\ index.js:296:3)

有没有人有什么建议? 任何帮助将不胜感激。

var path = require('path');  

res.sendFile(path.join(__dirname, './public', 'main.html'));

尝试这个:

res.sendfile(__dirname + '/public/main.html');

您必须指定绝对路径(以/开头)

您应该将get('*')函数中的路径更改为绝对路径:

res.sendfile('public/main.html');

你可以使用express' __dirname

确保您访问相对于当前工作目录的公共目录。 以下更改应适用于您的情况

var express = require('express'),
    app = express(),
    path = require('path'),
    publicDir = path.join(__dirname, 'public');

app.use(express.static(publicDir))
app.get('*', function(req, res){
    res.sendFile(path.join(publicDir, 'main.html'));
}).listen(3000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM