web-dev-qa-db-ja.com

node-expressエラー:廃止予定のres.send(status):代わりにres.sendStatus(status)を使用してください

response.send()を介して整数を送信しようとしていますが、このエラーが発生し続けます

廃止予定の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)
});

});
20
D-W-A

これを試すことができます:

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

男は正しい-それは数字を許可していません。プルーフリンク: http://expressjs.com/4x/api.html#res.send

45
Donskikh Andrei

これは、res.sendで数値を送信しているためです。

JSONオブジェクトを送信するか、文字列に変換できます。

11
Jerome Miranda

(すでにコメントで述べたように)

マニュアルの状態

Bodyパラメータには、Bufferオブジェクト、String、オブジェクト、または配列を指定できます。

そのため、整数は直接サポートされておらず、最初にこれらの型のいずれかに変換する必要があります。例えば:

response.send(String(idTest));
6
robertklep

このように使用し、

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

文字列またはオブジェクト/配列データを送信していない限り、エラーが発生します。データを文字列に変換するソリューション:

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

非推奨となったExpress 5は次のような署名をサポートしなくなりました-

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

代わりに、このような方法を使用します。つまり、応答の送信形式を変更するだけで済みます。

res.status(status).json(obj)

例-

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