【发布时间】:2019-08-30 20:20:55
【问题描述】:
我目前正在尝试研究如何使用 Firestore 和 NodeJS 进行基本查询。我收到错误“预期的 catch() 或返回”。我希望有人能解释为什么会这样?
我正在使用快速路由器来处理路由。
方法一、ESLint错误
userRouter.get("randomroutename", (req, res) => {
const uid = req.params.uid;
console.log("User: " + uid);
let collectionRef = db.collection('col');
collectionRef.add({foo: 'bar'}).then(documentReference => {
console.log(`Added document with name: ${documentReference.id}`);
res.status(200).send('SUCCESS');
});
});
环顾四周并尝试了一些似乎可行的方法后,但我真的很困惑为什么需要退货。当函数'add'肯定返回我可以访问的promise时,为什么我需要返回一个promise对我来说真的没有意义 .then 。
方法2.没有错误
userRouter.get("randomroutename", (req, res) => {
const uid = req.params.uid;
console.log("User: " + uid);
let collectionRef = db.collection('col');
return collectionRef.add({foo: 'bar'}).then(documentReference => {
console.log(`Added document with name: ${documentReference.id}`);
return res.status(200).send('SUCCESS');
});
});
根据文档 (https://googleapis.dev/nodejs/firestore/latest/CollectionReference.html),我相信方法 1 应该有效。
感谢您的帮助! (非常抱歉,如果这是非常明显的,我就是无法理解它......)
【问题讨论】:
标签: javascript firebase promise google-cloud-firestore eslint