你如何从server / app.js服务client / index.html?

我的文件结构:

- simulated-selves - client - index.html - server - app.js 

我试图发送用户index.html时,他们击中/路线。

 // server/app.js app.get('/', function(req, res) { res.sendFile(__dirname + '/../client/index.html', null, function(err) { if (err) { console.log('error: ', err); res.status(err.status).end(); } else res.status(200).end(); }); }); 

这不是工作。 这是被注销的错误:

 error: { [Error: Forbidden] status: 403 } 

所以基本上我可以访问app.js __dirname 。 由于app.js位于server文件夹中, __dirnameparsing为/Users/azerner/code/simulated-selves/server 。 由于我需要访问client文件夹中的index.html ,我需要操作这个__dirname ,我有。 我知道我可以做一些string操作,但我正在寻找最好的方法来做到这一点。

有一个节点内置模块处理解决path,这可能会帮助你解决这个问题

函数path.resolve将处理相对部分( /../ )并为您build立绝对path。

例如:

 var path = require('path'); var clientFile = path.resolve(__dirname + '/../client/index.html'); 

有关pathhttp://devdocs.io/node/path#path_path_resolve_from_to上的文档,请参阅更多信息