node-express error : express deprecated res.send(s

2019-02-16 08:14发布

问题:

I am trying to send an integer via response.send() but I keep getting this error

express deprecated res.send(status): Use res.sendStatus(status) instead

I am not sending a Status, my code is

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

});

回答1:

You could try this:

res.status(200).send((results[0].id).toString());

Guys are right - it doesn't allow numbers. Prooflink: http://expressjs.com/4x/api.html#res.send



回答2:

This is because you are sending numeric value in the res.send.

You could send a json object or convert it to string.



回答3:

(as mentioned in the comments already)

The manual states:

The body parameter can be a Buffer object, a String, an object, or an Array.

So integers aren't directly supported and need to be converted to one of those types first. For instance:

response.send(String(idTest));


回答4:

Use like this,

res.status(404).send('Page Not found');


回答5:

As long as you're not sending String or Object/Array data you get an error. Solution convert your data to string:

app.get('/runSyncTest', function(req, res) {
    var number = 5000;
    res.send((number).toString()); //Number is converted with toString()
});