Я немного использую node в качестве REST API, и теперь я застрял с этой простой функцией
Что я хочу: сохранить новую запись newM, и это происходит, после сохранения проверьте, содержит ли коллекция года год, и если нет, сохраните новую, и это произойдет.
это маршрут в режиме тестирования / отладки
router.post('/addnew', (req, res, next) => {
let newM = new Var(req.body.obj);
newM.save(function (err) {
if (err) return console.log(1, err); // TODO test
const newObjYear = new Date(req.body.obj.date).getFullYear();
console.log(newObjYear); // TODO test
NewsYear.findOne({year: newObjYear}, (err, year) => {
if (err) return console.log(2, err); // TODO test
if (!year) {
const newYearM = new NewsYear({
year: newObjYear
});
newYearM.save( err => {if (err) return console.log(3, err);});
console.log('save'); // TODO test
}
if (year) {
console.log('year'); // TODO test
}
console.log('last'); // TODO test
res.status(200).json({ok:'ok'});
next(); // TODO test
});
});
});
это консоль
2021
save
last
POST /api-admin-news/addnew 200 30.853 ms - 11
, как и предполагалось, но после того, как этот узел не отвечает ни на что и основан на падении загрузки процессора после остановки, Node находится в некотором бесконечном цикле.
Другие маршруты, даже в этой модели маршрута, такие как findByIdAndUpdate с тем же кодом, работают нормально.
Я недавно переключился на WebStorm и в режиме отладки (не эксперт) ничего другого не нашел
node -v : v10.10.0
"mongoose": "^5.1.1",
"express": "~4.16.0",
теперь работает на Windows, протестировано на Ubuntu с pm2 и nginx и тот же результат.
Извините за английский: D
спасибо
EDIT1: удалена неверно скопированная часть кода