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 });
}
});
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 esquemafriends
desde el esquemauser
.Primero, necesitarás actualizar tu esquema
user
para incluir un campofriends
que haga referencia al esquemafriends
.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.