Node Express Mongoose: проблема с неопределенным числовым значением - PullRequest
0 голосов
/ 19 апреля 2019

В моем приложении есть коллекция счетчиков в mongoDB.

POST и GET в порядке.

Но PUT не обновляет значения счетчика:

exports.setCounter = (req, res, next) => {
    var query = Counter.where({ cid: 'supercounter' })
    console.log('req body setCounter  ' + req.body.value);
    Counter.find().then(

        (counter) => {
            console.log(counter)
            switch (req.body.value) {
                case 'aco': // add a company 
                    counter.numco = counter.numco + 1;
                    break;
                case 'dco': // delete a company
                    counter.numco = counter.numco - 1;
                    break;
                case 'ausco': // add a company user
                    console.log(counter.numusco);
                    counter.numusco = counter.numusco + 1;
                    console.log(counter.numusco);
                    break;
                case 'dusco': // delete a company user
                    counter.numusco = counter.numusco - 1;
                    break;


            }
            query.updateOne(counter).then(
                () => {
                    res.status(201).json({
                        message: 'Counter updated successfully!'
                    });
                }
            ).catch(
                (error) => {
                    res.status(400).json({
                        error: error
                    });
                }
            )
        }
    )
    };

Все счетчики как числа.Я отправляю значение 'ausco', но оно не работает.

Вот журнал консоли nodemon:

enter image description here

Кто-то знает, почему я получаюНе определено и NaN?

Спасибо за помощь:)

1 Ответ

2 голосов
/ 20 апреля 2019

Похоже, что console.log(counter) выводит массив.

При доступе, например, console.log(counter.numusco); это должно быть console.log(counter[0].numusco);

РЕДАКТИРОВАТЬ: ясность для "почему" точно

undefined выводится, потому что свойство numusco не существует в объекте массива.

NaN затем пришло, потому что математические операции (например, +1) с undefined приводят к not-a-number

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