Узел зависает после определенного маршрута вызова - PullRequest
0 голосов
/ 11 сентября 2018

Я немного использую 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: удалена неверно скопированная часть кода

1 Ответ

0 голосов
/ 13 сентября 2018

Проблема была в одном schema.post ('save')

при тестировании кода, который я закончил только с save func

let odg = new Var(req.body.obj);
odg.save( );
res.status(200).json({ok:'ok'});

и все еще имеет ту же проблему.

поэтому я посмотрел файл схемы и попытался комментировать по частям и закончил одной строкой, из-за которой возникает проблема.

надеюсь, что смогу помочь кому-то еще с той же проблемой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...