У меня есть маршрут в экспрессе с функцией, которая добавляет некоторую информацию об атрибутах req.body в коллекцию Монго. Это работает, но я не доволен этим, мне кажется, что это неправильно, и я не думаю, что у меня еще есть мысли об асинхронности / ожидании.
Это код:
router.post("/input/:id", ensureAuthenticated, async (req, res) => {
Project.findOne({
_id: req.params.id
}).then(project => {
const newInput = {
inputTitle: req.body.inputTitle,
inputValue: req.body.inputValue,
inputUnits: req.body.inputUnits,
inputCategory: req.body.inputCategory,
inputUser: req.user.id
};
// Add to the array, this is the async function
(async () => {
await project.inputs.unshift(newInput);
})();
project.save().then(project => {
res.redirect(`/projects/output/${project.id}`);
});
});
});
Эта асинхронная функция делает то, что я думаю / надеюсь, что она делает (я хочу добавить переменную newInput в базу данных до перенаправления страницы)? Какой лучший способ сделать это? Должен ли я попытаться написать все это как одну функцию?