2016-07-06 4 views
-2
app.get('/', function(req,res){ 
     conn.query('SELECT * FROM db', function(err, rows, fields){ 
     res.send(rows.length); 
     }); 
}); 

, когда я иду в '/' URL, я получаю ошибка говоря:узел JS array.length не работает

RangeError: Invalid status code: 2 at ServerResponse.writeHead (_http_server.js:192:11) at ServerResponse.writeHead (/var/www/html/node_modules/....

почему это происходит?

Я могу отправить строки и результаты:

[{"id":"1", "email":"[email protected]", "nickname":"hahah"}, {"id":"2", "email":"[email protected]", "nickname":"hohoho"}] 

length свойство не работает.

ответ

2

rows.length работает нормально и его значение 2. Однако, когда вы передаете тип номера res.send(), он рассматривает его как код состояния HTTP для отправки обратно в ответ. 2 не является допустимым кодом статуса HTTP, поэтому вы получаете эту конкретную ошибку.

Если вы хотите отправить значение как тело ответа, вам нужно будет явно преобразовать значение в строку сначала. Например:

res.send('' + rows.length); 
+0

или вы можете использовать 'res.status (200) .send (rows.length);' –

+0

Спасибо за комментарии. Я попробую! –

Смежные вопросы