【发布时间】:2019-03-31 03:44:57
【问题描述】:
我在 Express 中有一个需要验证的 post call,因此我创建了一个名为“validator.js”的 javascript 文件,以在继续之前检查传递的值。 “validator.js”中的方法之一需要做一个axios调用,但它显然需要时间来填充数据。所以我像这样用 async/await 解决了
router.post("/add_to_favorites", passport.authenticate("local"), async(req, res) =>
{ let validation = await validateMedia(req.body);
if (validation.error) {
return res.status(400).json(validation.message);
}
“validateMedia”是调用validator.js的函数。
考虑到以下代码,处理此 axios 异步调用的最佳方法是什么?
快递
router.post("/add_to_favorites", passport.authenticate("local"), (req, res) =>
{ let validation = validateMedia(req.body);
if (validation.error) {
return res.status(400).json(validation.message);
}
}
validator.js
const validateMedia = data => {
if (data.mediaType !== "movie" && data.mediaType !== "serie") {
return {
error: true,
message: "Media type is not valid"
};
}
if (data.mediaType === "movie") {
axios.get(`/${data.mediaType}/${data.mediaId}`).then(response => {
if (data.mediaTitle === response.data.title) {
return { error: false, message: "Success" };
}
return { error: true, message: "Failed" };
});
}
return { error: false, message: "Checked values" };
}
【问题讨论】:
标签: javascript express asynchronous promise axios