我遇到一个令我感到困惑的问题。当使用带有Express的Node时,如果我使用res.write和res.end,则不会发送任何数据并且没有生成错误,但是如果我使用res.send,则会发送数据。
Nodejs版本8.9.4, Expressjs版本4.16.2
这不起作用:
res.write(data);
res.end;
这确实有效:
res.send(data);
现在我的功能看起来像这样:
app.post('/getData'), function (req,res)
{
let p;
let key = mysql.escape(req.body.key);
// response.writeHead(200, {'content-type', 'application/json'});
// changed to the below so I could use res.send
res.setHeader('content-type', 'application/json');
let query = "SELECT * FROM datatable WHERE key = " + key;
p = P_GetQueryData(query, ParseDataFunction);
p.then(data => {
res.send(data);
// previously had the below
// res.write(data);
// res.end;
}).catch(err => {
console.log(err);
res.sendStatus(500);
});
});
我能想到的唯一一件事是,我最近转而使用promises来处理我使用全局变量的缺陷,也许res.write / res.end在.then内部不起作用? / p>
答案 0 :(得分:1)
cmp test.asm <(bin/mips -d < test.bin)
将返回函数定义,而不是按预期终止请求/响应周期,您应该使用括号:
res.end