我正在尝试通过response.send()
发送一个整数,但我一直收到此错误
express deprecated res.send(status):改用res.sendStatus(status)
我没有发送状态,我的代码是
app.get('/runSyncTest' , function(request, response){
var nodes = request.query.nodes;
var edges = request.query.edges;
if (edges == "" ){
edges = []
}
userStory.userStory(nodes,edges);
connection.query('SELECT MAX(id) as id FROM report ', function(err,results, fields) {
idTest = results[0].id
response.send (idTest)
});
});
答案 0 :(得分:41)
你可以试试这个:
res.status(200).send((results[0].id).toString());
伙计们是对的 - 它不允许数字。 Prooflink:http://expressjs.com/4x/api.html#res.send
答案 1 :(得分:11)
这是因为您要在res.send中发送数值。
您可以发送json对象或将其转换为字符串。
答案 2 :(得分:5)
(已在评论中提及)
body参数可以是Buffer对象,String,对象或Array。
因此,不直接支持整数,需要先将其转换为其中一种类型。例如:
response.send(String(idTest));
答案 3 :(得分:4)
像这样使用,
res.status(404).send('Page Not found');
答案 4 :(得分:1)
只要您没有发送字符串或对象/数组数据,就会出错。 解决方案将您的数据转换为字符串:
app.get('/runSyncTest', function(req, res) {
var number = 5000;
res.send((number).toString()); //Number is converted with toString()
});
答案 5 :(得分:0)
已弃用的Express 5不再支持签名,例如-
res.json(200, {
result: result
});
使用这种方法代替,这意味着您只需要更改发送响应的格式即可。
res.status(status).json(obj)
示例-
res.status(200).json({'success' : true, 'result': 'result'})
答案 6 :(得分:0)
由于res.send(403);
,我在node-express打字稿项目中收到了过时的警告
解决方案1-
res.sendStatus(403);
解决方案2-
res.status(403).json(
{
'success': false,
'result': 'forbidden'
}
)