【发布时间】:2018-04-24 04:48:21
【问题描述】:
我怀疑将我的 express 方法转换为使用 async/await。
此时,我的方法如下:
app.post('/', (req, res) => {
const body = req.body;
let hospital = new Hospital({
name: body.name,
user: req.user._id
});
hospital.save((err, hospitalCreated) => {
if (err) {
return res.status(400).json({
ok: false,
mensagem: "Error to create hospital",
errors: err
});
}
res.status(201).json({
ok: true,
hospital: hospitalCreated
});
});
});
作为我的新节点,我尝试这样写:
app.post('/', async (req, res) => {
const body = req.body;
let hospital = new Hospital({
name: body.name,
user: req.user._id
});
await hospital.save((err, hospitalCreated) => {
if (err) {
return res.status(400).json({
ok: false,
mensagem: "Error to create hospital",
errors: err
});
}
res.status(201).json({
ok: true,
hospital: hospitalCreated
});
});
这是实现这一目标的正确方法吗?我必须使用 try/catch 吗?最好的方法是什么?
谢谢
【问题讨论】:
-
hospital.save() 是您可以分享的方法吗?或者它是另一个图书馆?
-
@MagdKudama 我相信他使用猫鼬,但原生 mongo 驱动器也可以。
-
开始阅读有关 async/await 是什么以及不是什么的文档。 MDN.
-
@MagdKudama 我正在使用猫鼬。你可以在这里了解更多:developer.mozilla.org/en-US/docs/Learn/Server-side/…
-
我不知道你想使用
async/await的原因是什么。您可以获得的好处是,如果出现错误,它们将落入错误处理程序,并且您的代码看起来会更清晰。但是你需要用.catch(next)包装你的中间件
标签: node.js express async-await