node-express error:express deprecated res.send(status):改为使用res.sendStatus(status)

时间:2015-05-30 18:50:54

标签: node.js express response

我正在尝试通过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)
});

});

7 个答案:

答案 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)

(已在评论中提及)

The manual states

  

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'
        }
    )