【发布时间】:2016-09-26 16:52:08
【问题描述】:
在 Node JS Express 中,我有一个名为 download 的 API。这会向调用应用程序返回一个缓冲区以及一个名为 status 的标头(它是一个 Javascript 对象)。
我将缓冲区作为响应正文从节点发送,并希望将状态作为自定义标头发送。
这就是我的回复的样子
response.setHeader('Access-Control-Allow-Origin','*');
if(responseBody instanceof Buffer) {
var status = JSON.stringify(responseHeaders.status);
console.log('Status is '+status); //Status is printed correctly here as a Javascript object
response.writeHead(responseStatusCode, responseHeaders);
response.end(responseBody);
console.log('Buffer sent')
}
我是从邮递员那里打来电话的。当响应到达 Postman 时,在 headers 选项卡中,状态显示为 [object Object]。
status --> [object Object]
我在将标头发送到客户端之前对其进行了字符串化,那么为什么我会在响应标头中看到对象。
【问题讨论】:
-
setHeader 是否接受 json 作为参数?
-
最好用字符串
-
不会 JSON.stringify 将其转换为字符串吗?它首先转换为字符串,然后将该字符串设置为标题。
-
奇怪...不会
response.writeHead覆盖setHead() -
反其道而行之。离开 setHeader 并移除 writeHead。 responseHeaders 仍然有对象版本。
标签: javascript node.js express