#javascript #node.js #mongoose
Вопрос:
Вот как я подключился к базе данных
const dbConnection = async() => {
try {
await mongoose.connect(process.env.MONGODB_CNN);
console.log('Base de datos online');
} catch (error) {
console.log(error);
throw new Error('Error al inicializar la base de datos');
}
проблема возникает при обновлении
const usuariosPut = (req = request, res = response) => {
const {id} = req.params;
const {password, google, correo, ...resto} = req.body;
if (password) {
const salt = bcryptjs.genSaltSync();
resto.password = bcryptjs.hashSync(password, salt);
}
const usuario = new Usuario.findByIdAndUpdate(id, resto);
res.json({
msg: 'put API - controlador',
id
});
Я получаю эту ошибку, это было бы очень полезно, так как я только начал
Ответ №1:
Потому что вы пытаетесь создать новый экземпляр модели модели, а не напрямую вызывать метод в модели.
const usuario = new Usuario.findByIdAndUpdate(id, resto);
должно быть:
const usuario = await Usuario.findByIdAndUpdate(id, resto);
Кроме того, я не вижу ни async
одного ключевого слова или Promise.then()
в вашем коде. Методы модели асинхронны, поэтому обязательно отметьте свою основную функцию async
следующим образом:
const usuariosPut = async (req = request, res = response) => {
Ответ №2:
Вы создавали Usuario
модель раньше? Если это так, вам не нужно вызывать конструктор модели с new
ключевым словом, ваш код должен выглядеть следующим образом:
const usuario = await Usuario.findByIdAndUpdate(id, resto);