Hi, I have a route in node/express that takes some req.body info from a form and objectifies it and adds it to a mongodb collection. I had it all coded up and it was working for me both locally and when I uploaded it. This is the code (using a promise, I believe):
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, }; // Add to array - I think this was causing the issue project.inputs.unshift(newInput); project.save().then(project => { res.redirect(`/projects/output/${project.id}`); }); }); }); But then a colleague who was testing it told me that for him on every browser except Chrome, it wasn't working - he's not a tech person so difficult for me to ascertain the precise error, but I'm pretty sure the problem was that the object just wasn't adding to the collection. My best guess is that the 'project.save()' command was 'winning the race' against the unshift command. So I changed my code to include a try/catch block and async/await, and it worked fine for me (but it worked fine for me before). So this is my new code: router.post("/input/:id", ensureAuthenticated, async (req, res) => { try { const newInput = { inputTitle: req.body.inputTitle, inputValue: req.body.inputValue, }; const project = await Project.findOne({ _id: req.params.id }); project.inputs.unshift(newInput); await project.save(); res.redirect(`/projects/output/${project.id}`); } catch (e) { res.send(e); } }); Sorry for the long question, but can anyone help me with this, is the second way of doing it better, as in, more likely to ensure that the newInput variable is actually added to the mongo collection? Is there a difference between the two methods (with and without 'async/await') that makes one superior to the other for my purposes? Thanks. -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. To post to this group, send email to nodejs@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/9b272b73-a3ef-4291-9fc7-9845a1fc0eb5%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.