ExpressJS - не удается получить данные об обновлении пользователя - PullRequest
0 голосов
/ 02 ноября 2018

Я хочу создать опытный массив в пользовательской модели с новыми данными, и проблема в том, что я не получаю сохраненные данные в функции exec, поэтому я могу помещать новые данные в массив во внешнем интерфейсе. Это то, что я получил до сих пор.

router.post('/:username/experience', function(req, res) {
const username = req.params.username;

User.findOneAndUpdate(
    username, {
        $push: {
            experience: req.body
        }
    }, {
        safe: true,
        upsert: true
    })
    .exec(function (err, data) {
        console.log(data, "------>");
    });
})

Это моя схема опыта, которая называется в пользовательской модели как опыт: [ExperienceSchema].

const ExperienceSchema = new Schema({
    title: {
        type: String,
        required: true
    },
    company: {
        type: String,
        required: true
    },
    from: {
        type: Date,
    },
    to: {
        type: Date,
    },
    workingNow: {
        type: Boolean,
        default: false
    },
    description: {
        type: String
    }
}, {
    usePushEach: true
})

1 Ответ

0 голосов
/ 02 ноября 2018

Поскольку findOneAndUpdate возвращает исходный документ (состояние перед обновлением), вам необходимо добавить new: true к параметрам, чтобы получить обновленный документ.

опции:

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