2015-05-30 18 views
6

Sto tentando di inviare un intero via response.send() ma continuo a ricevere questo errorenodo-express errore: esprimere res.send deprecato (stato): Utilizzare res.sendStatus (stato) invece

esprimono res deprecate. inviare (stato): Utilizzare res.sendStatus (stato) invece

io non mando uno stato, il mio codice è

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

solo per evitare di avvertimento, che ne dici di tornare JSON come 'response.send ({max: idTest})' 'Per quanto riguarda –

+1

res.send()', [la fine manuale ] (http://expressjs.com/4x/api.html#res.send) afferma: _ "Il parametro body può essere un oggetto Buffer, una String, un oggetto o una matrice." _. Quindi gli interi non sono direttamente supportati e devono essere prima convertiti in uno di questi tipi. – robertklep

+0

il trucco JSON ha funzionato grazie @HarisHasan –

risposta

4

(come indicato nei commenti già)

The manual states:

parametro

Il corpo può essere un oggetto Buffer, una stringa, un oggetto o un array.

Quindi gli interi non sono supportati direttamente e devono essere prima convertiti in uno di questi tipi. Per esempio:

response.send(String(idTest)); 
2

Usa come questo,

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

Questo perché si sta inviando valore numerico nel res.send.

È possibile inviare un oggetto JSON o convertirlo in stringa.

0

Finché non si inviano dati String o Object/Array si ottiene un errore. Soluzione convertire i dati di stringa:

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