我的文件结构:
- 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 }
所以基本上我可以访问__dirname
中的app.js
。由于app.js
位于server
文件夹中,__dirname
会解析为/Users/azerner/code/simulated-selves/server
。由于我需要访问index.html
文件夹中的client
,我需要操纵我拥有的__dirname
。我知道我可以做一些字符串操作,但我正在寻找最好的方法来做到这一点。
答案 0 :(得分:1)
有一个节点内置模块可以处理解析路径,这可能会帮助您解决此问题
函数path.resolve
将处理相对部分(/../
)并为您构建绝对路径。
例如:
var path = require('path');
var clientFile = path.resolve(__dirname + '/../client/index.html');
上的文档的更多信息