Mat*_*nis 4 javascript node.js express
目前我在Express应用程序中使用控制器来处理路由.当某条路线被击中时,我会打电话给pagesController.showPlayer我index.html.这是控制器:
'use strict';
var path = require('path');
var player = function(req, res) {
res.sendFile(path.join(__dirname, '../assets', 'index.html'));
};
module.exports = {
player: player
};
Run Code Online (Sandbox Code Playgroud)
我还需要发回一个JSON对象,表示请求此路由的用户.但是,当我添加res.json({user: req.user});所有我得到的是这个JSON对象,index.html不再显示.
的res.json()表示HTTP应答时,它得到一个HTTP请求一个Express应用发送.另一方面,res.sendFile()在给定路径上传输文件.
在这两种情况下,流程基本上都转移到可能已发出请求的客户端.
所以,不,你不能使用res.sendFile和res.json在一起.
但是,您确实没有什么办法可以达到预期的目标:
res.sendFile具有以下签名:
res.sendFile(path [, options] [, fn])
Run Code Online (Sandbox Code Playgroud)
凡path必须是文件的绝对路径(除非根选项在选项中设置对象).
在options,您可以指定object包含HTTP标头以与文件一起提供.
例:
var options = {
headers: {
'x-timestamp': Date.now(),
'x-sent': true,
'name': 'MattDionis',
'origin':'stackoverflow'
}
};
res.sendFile(path.join(__dirname, '../assets', 'index.html'), options);
Run Code Online (Sandbox Code Playgroud)
这真的是你能够做到最接近完成所期望的任务.还有其他选择..
res.json)并在客户端管理路由(而nodejs将作为API端),或希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
6717 次 |
| 最近记录: |