Tengo este código para crear un nuevo registro en RegistrationController y el modelo de registro
const Registration = require('../models/Registration'); module.exports = { async create(request, response) { const { user_id } = request.headers; const { eventId } = request.params; const { date } = request.body; const registration = await Registration.create({ user: user_id, event: eventId, date }); await registration .populate('event') .populate('user', '-password') .execPopulate(); //PROBLEM HERE return response.json(registration); }, const mongoose = require('mongoose'); const RegistrationSchema = new mongoose.Schema({ date: String, approved: Boolean, user: { type: mongoose.Schema.Types.ObjectId, ref: "User" }, event: { type: mongoose.Schema.Types.ObjectId, ref: "Event" } }); module.exports = mongoose.model('Registration', RegistrationSchema); Cuando envío una solicitud de publicación a insomnia, se muestra este error: (node:6260) UnhandledPromiseRejectionWarning: TypeError: registration.populate(...).populate is not a function . ¿Alguien puede ayudar?
Necesita .find o .findOne , recuperará y completará desde la base de datos el documento que se acaba de crear:
await Registration .findOne({user: user_id}) .populate('event') .populate('user', '-password') .lean() // faster, returns simple JSON .exec(); // returns a true Promise