javascript – 我可以一起使用’res.sendFile’和’res.json’吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 我可以一起使用’res.sendFile’和’res.json’吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1380字,纯文字阅读大概需要2分钟。
内容图文
目前我在Express应用程序中使用控制器来处理路由.当某个路线被击中时,我会调用为我的index.html提供服务的pagesController.showPlayer.这是控制器:
'use strict';
var path = require('path');
var player = function(req, res) {
res.sendFile(path.join(__dirname, '../assets', 'index.html'));
};
module.exports = {
player: player
};
我还需要发回一个JSON对象,表示请求此路由的用户.
但是,当我添加res.json({user:req.user});我得到的就是这个JSON对象,不再显示index.html.
解决方法:
res.json()表示Express应用程序在收到HTTP请求时发送的HTTP响应.另一方面,res.sendFile()在给定路径上传输文件.
在这两种情况下,流程基本上都转移到可能已发出请求的客户端.
所以不,你不能一起使用res.sendFile和res.json.
但是,您确实没有什么办法可以达到预期的目标:
res.sendFile具有以下签名:
res.sendFile(path [, options] [, fn])
其中path必须是文件的绝对路径(除非在options对象中设置了root选项).
在选项中,您可以指定包含HTTP标头的对象以与文件一起提供.
例:
var options = {
headers: {
'x-timestamp': Date.now(),
'x-sent': true,
'name': 'MattDionis',
'origin':'stackoverflow'
}
};
res.sendFile(path.join(__dirname, '../assets', 'index.html'), options);
这真的是你能够做到最接近完成所期望的任务.还有其他选择..
>比如在cookie中设置内容(但这将是每个后续req / res循环的一部分),或者
>仅发送一个json响应(使用res.json)并在客户端管理路由(而nodejs将作为API端),或者
>设置包含作用于请求的变量的res.locals对象,因此仅对在请求/响应周期中呈现的视图(如果有)提供
希望能帮助到你!
内容总结
以上是互联网集市为您收集整理的javascript – 我可以一起使用’res.sendFile’和’res.json’吗?全部内容,希望文章能够帮你解决javascript – 我可以一起使用’res.sendFile’和’res.json’吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。