У меня есть почтовый вызов в Express, который необходимо проверить, поэтому я создал файл javascript с именем «validator.js», чтобы проверить переданные значения, прежде чем продолжить.Один из методов в "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" };
}