2015-05-30 7 views
6

Ich versuche, eine ganze Zahl über response.send() zu senden, aber ich erhalte diesen FehlerKnoten-express Fehler: Express deprecated res.send (Status): Verwenden Sie res.sendStatus (Status) statt

veraltet res auszudrücken. senden (Status): Verwenden Sie res.sendStatus (Status) statt

ich bin kein Status senden, mein Code ist

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

}); 
+1

nur Warnung zu vermeiden, wie etwa JSON Rückkehr wie 'response.send ({max: idTest})' –

+1

In Bezug auf 'res.send()', [das Handbuch ] (http://expressjs.com/4x/api.html#res.send) states: _ "Der body-Parameter kann ein Buffer-Objekt, ein String, ein Objekt oder ein Array sein." _. Ganzzahlen werden also nicht direkt unterstützt und müssen zuerst in einen dieser Typen konvertiert werden. – robertklep

+0

der JSON-Trick funktioniert danke @HarisHasan –

Antwort

4

The manual states (wie in den Kommentaren bereits erwähnt):

Der Körperparameter kann ein Puffer-Objekt, ein String, ein Objekt oder ein Array.

So werden Ganzzahlen nicht direkt unterstützt und müssen zuerst in einen dieser Typen konvertiert werden. Zum Beispiel:

response.send(String(idTest)); 
2

Verwendung wie diese,

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

Dies liegt daran, dass Sie numerischen Wert in der res.send senden.

Sie könnten ein JSON-Objekt senden oder in eine Zeichenfolge konvertieren.

0

Solange Sie keine String- oder Object/Array-Daten senden, erhalten Sie einen Fehler. Lösung konvertieren Sie Ihre Daten an string:

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