Así es como me conecté a la base de datos.
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'); }el problema viene al actualizar
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 });me sale ese error, seria de mucha ayuda ya que acabo de empezar
Porque está intentando crear una nueva instancia del modelo modelo en lugar de llamar directamente al método en el modelo.
const usuario = new Usuario.findByIdAndUpdate(id, resto);debiera ser:
const usuario = await Usuario.findByIdAndUpdate(id, resto); Además, no veo ninguna palabra clave async o Promise.then() en su código. Los métodos del modelo son asíncronos, así que asegúrese de marcar su función principal async de esta manera:
const usuariosPut = async (req = request, res = response) => {¿Creó antes el modelo Usuario ? Si es así, no necesita llamar al constructor del modelo con la new palabra clave, su código debería verse así:
const usuario = await Usuario.findByIdAndUpdate(id, resto);