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)
});
});
これを試すことができます:
res.status(200).send((results[0].id).toString());
男は正しい-それは数字を許可していません。プルーフリンク: http://expressjs.com/4x/api.html#res.send
これは、res.sendで数値を送信しているためです。
JSONオブジェクトを送信するか、文字列に変換できます。
(すでにコメントで述べたように)
マニュアルの状態 :
Bodyパラメータには、Bufferオブジェクト、String、オブジェクト、または配列を指定できます。
そのため、整数は直接サポートされておらず、最初にこれらの型のいずれかに変換する必要があります。例えば:
response.send(String(idTest));
このように使用し、
res.status(404).send('Page Not found');
文字列またはオブジェクト/配列データを送信していない限り、エラーが発生します。データを文字列に変換するソリューション:
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'})