Я полагаю, что эта ситуация, вероятно, вызвана неправильным пониманием природы nodejs asyn c.
Я рекомендую вам немного взглянуть на Promises и Async / Await, доступные в текущих nodejs версиях, что сделало код намного чище и проще для понимания.
Эта статья, кажется, объясняет это довольно хорошо: https://codeburst.io/javascript-es-2017-learn-async-await-by-example-48acc58bad65
Что касается вашей проблемы, то здесь она проходит непроверенную и не элегантное решение, надеюсь, оно вам поможет:
app.post("/articles", async (req, res) => {
const results = await Article.find(query);
const articleExists = results.some(result => result.title === req.body.title),
if (articleExists) {
return res.send("Article already exists!")
}
const newArticle = new Article({
title: req.body.title,
content: req.body.content
});
newArticle.save(err => {
if (err) {
return res.send(err);
} else {
return res.send("Article saved successfuly")
}
});
});