Ответ не определен для функции мангусты findOneAndUpdate? - PullRequest
0 голосов
/ 28 марта 2019

Я обновляю и возвращаю (новый объект) существующий объект в базе данных с помощью mongoose findOneAndUpdate , но получаю ошибку

Ошибка

response is not defined
    at Function.module.exports.updateProfile ........

В роутере Файл

router.post('/edit_profile', (req, res) => {
let updateProfile = new Profile({
    name: req.body.name,
    email: req.body.email,
    username: req.body.username,
    gender: req.body.gender,
    bio: req.body.bio,
    user_id: req.body.user_id
});


console.log(updateProfile);           //consoling data Place(1)


Profile.updateProfile(updateProfile.user_id, (err, user) => {
    if (err) throw err;
    else {
        console.log("Update User");
        console.log(user);
        res.json({
            user: user
        })
    }
})
})

данные в консоле на месте (1)

{ _id: 5c9cd517b3b7db248c6d7981,
  name: 'Shivva',
  email: 'ritinbhardwaj933@gmail.com',
  username: 'zzz',
  gender: 'Male',
  bio: 'I am HOwdy Member',
  user_id: '5c9cd47bf3d9bb1ea8cbfcbe' }

В файле profile.js

module.exports.updateProfile = (id, callback) => {
let query = { user_id: id };
console.log(query);                //consoling data Place(2)

    Profile.findOneAndUpdate(query, { $set: response }, { new: true }, (err, user) => {
    if (err) throw err;
    else {
        callback(null, user);
    }
    });
}

утешенные данные в месте (2)

{ user_id: '5c9cd47bf3d9bb1ea8cbfcbe' }

Ошибка

Ошибка iполучаю ответ не определен a Function.module.exports.updateProfile

Ошибка

принятое решение сработало, но теперь оно возвращает ошибку

collection.findAndModify is deprecated. Use findOneAndUpdate, findOneAndReplace or findOneAndDelete instead

1 Ответ

0 голосов
/ 28 марта 2019

Если вы посмотрите внимательно, в этой строке вы использовали переменную response, но никогда не инициализировали ее.

Profile.findOneAndUpdate(query, { $set: response }, { new: true }, (err, user) => {

Это слово ответа должно быть заменено объектом с любыми изменениями, которые вы хотите, например. { name: 'jason bourne' }

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

let updateProfile = new Profile({
    name: req.body.name,
    email: req.body.email,
    username: req.body.username,
    gender: req.body.gender,
    bio: req.body.bio,
    user_id: req.body.user_id
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...