Ответ 1
Вы можете попробовать следующее:
res.status(200).send((results[0].id).toString());
Ребята правы - номера не допускаются. Prooflink: http://expressjs.com/4x/api.html#res.send
Я пытаюсь отправить целое число через 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)
});
});
Вы можете попробовать следующее:
res.status(200).send((results[0].id).toString());
Ребята правы - номера не допускаются. Prooflink: http://expressjs.com/4x/api.html#res.send
Это потому, что вы отправляете числовое значение в res.send.
Вы можете отправить объект json или преобразовать его в строку.
(как уже упоминалось в комментариях)
Параметр body может быть объектом Buffer, строкой, объектом или массивом.
Таким образом, целые числа напрямую не поддерживаются и должны быть сначала преобразованы в один из этих типов. Например:
response.send(String(idTest));
Используйте как это,
res.status(404).send('Page Not found');
Пока вы не отправляете данные String или Object/Array, вы получаете сообщение об ошибке. Решение преобразует ваши данные в строку:
app.get('/runSyncTest', function(req, res) {
var number = 5000;
res.send((number).toString()); //Number is converted with toString()
});
Его устаревший Express 5 больше не поддерживает подпись, как -
res.json(200, {
result: result
});
Вместо этого используйте такой метод, что означает, что вам нужно всего лишь изменить формат отправки ответов.
res.status(status).json(obj)
Пример -
res.status(200).json({'success' : true, 'result': 'result'})