我正在Firebase上创建网站。
现在我的网站正在工作。
,但我不知道如何读取firestore数据和数据响应。
router.get('/', function(req, res, next) {
admin.firestore().collection('post').get()
.then(snap => {
const data = snap.size;
console.log("size: " + data);
return res.status(200).send(data);
}).catch(err => {
console.log(err);
res.status(500).send(err);
});
});
module.exports = router;
日志是有效的,但不响应。
RangeError: Invalid status code: 24
at ServerResponse.writeHead (_http_server.js:192:11)
at ServerResponse.writeHead (/user_code/node_modules/express-session/node_modules/on-headers/index.js:55:19)
at ServerResponse._implicitHeader (_http_server.js:157:8)
at ServerResponse.OutgoingMessage.end (_http_outgoing.js:573:10)
at ServerResponse.end (/user_code/node_modules/express-session/index.js:354:19)
at ServerResponse.send (/user_code/node_modules/express/lib/response.js:221:10)
at admin.firestore.collection.get.then.snap (/user_code/routes/main.js:14:26)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
const data = snap.size
为您提供了一个数字类型变量,这是您刚刚查询的收集大小。当您将一个数字发送到发送()时,似乎告诉Express您要将该号码作为HTTP状态代码发送给客户端(显然它覆盖了您使用status())。send()的API文档甚至没有说您可以传递数字。
如果要发送一个数字作为响应的正文,请尝试将其转换为字符串:
res.status(200).send('' + data);
或将其捆绑到JSON对象中供客户端解析,这可能更好。