如何从server/app.js提供client/index.html ?
How do you serve client/index.html from server/app.js?
我的文件结构:
- 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
文件夹中,因此__dirname
解析为/Users/azerner/code/simulated-selves/server
。因为我需要访问client
文件夹中的index.html
,所以我需要操作我拥有的这个__dirname
。我知道我可以做一些字符串操作,但我正在寻找最好的方法来做到这一点。
有一个处理路径解析的节点内置模块,它可能会帮助您解决这个问题
函数path.resolve
将处理相对部分(/../
),并为您构建一个绝对路径。
var path = require('path');
var clientFile = path.resolve(__dirname + '/../client/index.html');
查看路径http://devdocs.io/node/path#path_path_resolve_from_to
相关文章:
- Emberjs应用程序加载在除Index之外的所有路由上
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 主干模板:index.jst.eco到index.jst.ejs
- 将 jQuery 代码添加到 Index.aspx 页面
- AngularJS-需要在index.html页面中访问来自服务的数据
- 更改基于它的Select OPTION's INDEX(Jquery)
- 尝试创建一个具有z-index的堆叠菜单'使用HTML5/CSS3/JS
- index.html使用webpack开发服务器未重新加载
- 从index.html调用函数,该函数无限循环
- Javascript: DLNA client
- RouteChangeStart事件在初始index.html页面加载时触发
- Is (!~index) faster than (index === -1)?
- KOValidation在错误消息中获取可观察值、$index()、$data等
- 为什么我可以'不要使用xx[this.index].style.display?它's说“;无法读取属性
- Angular2:Index.html没有't显示该文件;正在加载&”;
- 如何使用gulp-inject将文件的内容插入到我的index.html中
- 如何在ng repeat angular js中使用$index
- 使用index.ts文件导出类会导致注入的构造函数中未定义
- 使url匹配'/''/索引'和'/index.html'到单一状态
- 如何从server/app.js提供client/index.html ?