我正在尝试使用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必须是绝对路径或指定root到res.sendFile 在ServerResponse.sendFile(D:\ Workspace \ contacts \ node_modules \ express \ lib \ response.js:389:11) 在D:\ Workspace \ contacts \ server.js: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) 在D:\ Workspace \ contacts \ node_modules \ express \ lib \ router \ index.js:235:24 在Function.proto.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 在Function.match_layer(D:\ Workspace \ contacts \ node_modules \ express \ lib \ router \ index.js:296:3)
有没有人有任何建议?任何帮助将不胜感激。
答案 0 :(得分:2)
var path = require('path');
res.sendFile(path.join(__dirname, './public', 'main.html'));
答案 1 :(得分:1)
试试这个:
res.sendfile(__dirname + '/public/main.html');
您必须指定绝对路径(以/开头)
答案 2 :(得分:0)
您应该将get('*')函数中的路径更改为绝对路径:
res.sendfile('public/main.html');
您可以使用快递'__dirname
。
答案 3 :(得分:0)
确保您访问相对于当前工作目录的公共目录。 以下更改应适用于您的情况
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);