我有以下 server.js 文件:
var express = require('express'),
api = require('./api'),
app = express();
app
.use(express.static('./public'))
.use('./api', api)
.get('*', function (req, res) {
res.sendfile('public/main.html');
})
.listen(3000);
server.js 文件位于 C:\Users\myName\Desktop\prodfixes\server.js 中,main.html 位于 C:\Users\myName\Desktop\prodfixes\public\main.html 中 并前往 http://localhost:3000/不会在屏幕上抛出错误,但是在命令行上(我使用nodemon server.js 运行服务器)我收到错误:express deprecated res.sendfile: Use res.sendFile 相反。所以然后我显然将 res.sendfile 更改为 res.sendFile 但当我刷新屏幕时出现错误:
TypeError: path must be absolute or specify root to res.sendFile at ServerResponse.sendFile (C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\response.js:394:11) at C:\Users\myName\Desktop\prodfixes\server.js:9:7 at Layer.handle [as handle_request] (C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\router\route.js:131:13) at Route.dispatch (C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\router\layer.js:95:5) at C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\router\index.js:277:22 at param (C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\router\index.js:349:14) at param (C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\router\index.js:365:14) at Function.process_params (C:\Users\myName\Desktop\prodfixes\node_modules\express\lib\router\index.js:410:3)
抱歉,我是 Angular 和使用服务器的新手,因此我们将不胜感激。谢谢。
最佳答案
使用path.resolve
应该以跨平台兼容的方式解决这个问题:
var express = require('express'),
path = require('path'),
api = require('./api'),
app = express();
app
.use(express.static('./public'))
.use('./api', api)
.get('*', function (req, res) {
res.sendFile(path.resolve('public/main.html'));
})
.listen(3000);
path.resolve
将提供文件的绝对路径,以满足 res.sendFile()
函数的要求:
Unless the root option is set in the options object, path must be an absolute path of the file.
关于javascript - 启动 Angular 服务器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32061000/