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

當我去'/'網址, 我得到一個錯誤節點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

謝謝您的評論。我會嘗試! –