Node.js 如何在nodejs中使用mongodb write函数返回所有元素,而不是只返回刚刚创建的元素
我想在crud应用程序中编写函数,它在save元素之后返回所有元素,而不是刚刚创建的元素 我写了这个函数:Node.js 如何在nodejs中使用mongodb write函数返回所有元素,而不是只返回刚刚创建的元素,node.js,mongodb,crud,Node.js,Mongodb,Crud,我想在crud应用程序中编写函数,它在save元素之后返回所有元素,而不是刚刚创建的元素 我写了这个函数: exports.create = (req, res) => { if (req.body.content) return res.status(400).send({ message: 'Rule content can not be empty' }); const rule = new Rule({ rulename: req.body
exports.create = (req, res) => {
if (req.body.content)
return res.status(400).send({ message: 'Rule content can not be empty' });
const rule = new Rule({ rulename: req.body.rulename || 'Empty Rule' });
rule.save()
.then(() => {
Rule.find().then(rules => {
res.send(rules);
})
})
.catch(err => { res.status(500).send({ message: err.message || 'Some error occured while creating the Rule' }) });
}
我可以工作,但如何改进它?我建议您使用
async/await
而不是承诺链接方法:
exports.create = async (req, res) => {
if (!req.body.content)
return res.status(400).send({ message: 'Rule content can not be empty' });
const rule = new Rule({ rulename: req.body.rulename || 'Empty Rule' });
try {
await rule.save();
const rules = await Rule.find();
return res.status(200).send(rules);
} catch (e) {
res.status(500).send({ message: err.message || 'Some error occured while creating the Rule' });
}
}
正如您所知,它不会改变您的代码性能,但它以线性样式而不是承诺链中的嵌套回调函数更具可读性。您是否面临此代码的任何性能问题?不,我是nodejs新手,我认为它看起来很奇怪