Подтвердить что ты не робот

Node -express error: выразить устаревшее res.send(статус): вместо этого используйте res.sendStatus(status)

Я пытаюсь отправить целое число через response.send(), но я продолжаю получать эту ошибку

выразить устаревшее res.send(статус): вместо этого используйте res.sendStatus(статус)

Я не отправляю статус, мой код

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

});
4b9b3361

Ответ 1

Вы можете попробовать следующее:

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

Ребята правы - номера не допускаются. Prooflink: http://expressjs.com/4x/api.html#res.send

Ответ 2

Это потому, что вы отправляете числовое значение в res.send.

Вы можете отправить объект json или преобразовать его в строку.

Ответ 3

(как уже упоминалось в комментариях)

В руководстве говорится:

Параметр body может быть объектом Buffer, строкой, объектом или массивом.

Таким образом, целые числа напрямую не поддерживаются и должны быть сначала преобразованы в один из этих типов. Например:

response.send(String(idTest));

Ответ 4

Используйте как это,

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

Ответ 5

Пока вы не отправляете данные String или Object/Array, вы получаете сообщение об ошибке. Решение преобразует ваши данные в строку:

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

Ответ 6

Его устаревший Express 5 больше не поддерживает подпись, как -

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

Вместо этого используйте такой метод, что означает, что вам нужно всего лишь изменить формат отправки ответов.

res.status(status).json(obj)

Пример -

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