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

48,284

Solution 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

Solution 2

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

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

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

Solution 4

Its Deprecated, Express 5 No Longer Supports The Signature Like -

res.json(200, {
   result: result
});

Instead, use a below method, Means you only need to change the format of sending responses.

res.status(statusCode).json(result);

Example -

res.status(200).json({'success' : true, 'result': result})

Solution 5

Use like this,

res.status(404).send('Page Not found');
Share:
48,284
D-W-A
Author by

D-W-A

Updated on December 15, 2021

Comments

  • D-W-A
    D-W-A over 2 years

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