es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo publicar/crear solicitudes uno a muchos en Express/Mongoose (modelo incrustado)

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy nuevo en express y lo he estado probando con Mongoose.
Aquí está mi problema, estoy intentando hacer una solicitud de publicación donde se pueden crear nuevos amigos, pero solo para un usuario. Como un usuario puede tener diez amigos.

Esquema de usuario –

const userSchema = new mongoose.Schema({
nombreDeUsuario: String,
correoElectronicoDelUsuario: String,
contraseñaDelUsuario: String,
amigos: {
tipo: mongoose.Schema.types.ObjectId,
ref: “amigos”
},
});
module.exports = express.model(“Usuario, userSchema”)

Esquema de amigos –

const friSchema = new mongoose.Schema({
nombre: String,
edad: número,
});

module.exports = express.model(“amigos”, friSchema)

He intentado mucho publicar amigos pero parece que no funciona.

Mi código actual es donde puedo publicar nuevos amigos.

router.post(“usuario/:nombreDeUsuario/amigos”, async (req, res) => {
const newMember = new User({
amigos: req.body.amigos,
});
const foundMember = await Member.findOne({ nombreDeUsuario: req.params.nombreDeUsuario });
try {
const savedMember = await newMember.save();
res.json(savedMember);
} catch (err) {
res.json({ message: err });
}
});

este es el código donde puedo publicar nuevos usuarios (funciona)

router.post(“/usuario”, async (req, res) => {
const newMember = new User({
nombreDeUsuario: req.body.nombreDeUsuario,
correoElectronicoDelUsuario: req.body.correoElectronicoDelUsuario,
contraseñaDelUsuario: req.body.contraseñaDelUsuario,
});
try {
const savedMember = await newMember.save();
res.json(savedMember);
} catch (err) {
res.json({ message: err });
}
});

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando crear una solicitud de publicación para agregar amigos a un usuario. Para hacer esto, necesitarás usar el método populate() en Mongoose. Esto te permitirá hacer referencia al esquema friends desde el esquema user.

    Primero, necesitarás actualizar tu esquema user para incluir un campo friends que haga referencia al esquema friends.

    javascript
    const userSchema = new mongoose.Schema({
    userName: String,
    userMail: String,
    userPassword: String,
    friends: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: "friends"
    }],
    });
    module.exports= express.model("User", userSchema)

    Luego, necesitarás actualizar tu solicitud de publicación para usar el método populate().

    javascript
    router.post("user/:userName/friends", async (req, res) => {
    const newMember = new User({
    friends: req.body.friends,
    });
    const foundMember = await Member.findOne({ userName: req.params.userName }).populate('friends');
    try {
    const savedMember = await newMember.save();
    res.json(savedMember);
    } catch (err) {
    res.json({ message: err });
    }
    });

    Esto debería permitirte agregar amigos a un usuario.

Comments are closed.