mongoose objeto no relacional dentro de otro objeto, como hacer populate y post
Publicado por Francisco (5 intervenciones) el 19/10/2019 20:47:08
Hola les mando mi esquema hecho en mongoose.
Cliente.js
Y estos son mis metodos post y get del controlador de clientes
Ayúdenme, por favor. Ingreso al postman y cuando guardo el objeto me muestra la dirección como id, y yo quiero que me muestre lo que está adentro.
Se los agradecería muchísimo.
Saludos
Francisco
Cliente.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const mongoose = require('mongoose');
const { Schema } = mongoose;
const clienteSchema = new Schema({
nombre: String,
email: String,
cuil: String,
telefono: Number,
direccion: {calle: String,
numero: Number,
piso: String,
departamento: Number
}
});
mongoose.model('clientes', clienteSchema);
Y estos son mis metodos post y get del controlador de clientes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
app.get('/api/clientes', async (req, res) => {
console.info('Obteniendo clientes');
await Cliente.find().
populate(clientes,{path:"direcciones"},function(err,clientes){
res.send(clientes);
});
});
app.post('/api/clientes', async (req, res) => {
const { nombre, email, cuil, telefono,direccion} = req.body;
const cliente = new Cliente({
nombre,
email,
cuil,
telefono,
direccion: new Direccion({
calle: {type: String},
numero:{type: Number},
piso:{type: String},
departamento:{type: Number}
}), type:Object
});
try {
let nuevoCliente = await cliente.save(); //Se maneja de modo asincrono, ejecuta un hilo programado en otro hilo.
res.status(201).send(nuevoCliente); // en el response le da el status, verifica y luego le da la tarea, despues del save, el save le da un id.
} catch (err) {
if (err.name === 'MongoError') {
res.status(409).send(err.message);
}
res.status(500).send(err);
}
});
Ayúdenme, por favor. Ingreso al postman y cuando guardo el objeto me muestra la dirección como id, y yo quiero que me muestre lo que está adentro.
Se los agradecería muchísimo.
Saludos
Francisco
Valora esta pregunta


0