Как сделать пост и получить веб-сервис без реляционного вложенного объекта - PullRequest
0 голосов
/ 19 октября 2019

// Привет, это моя схема "Клиент":

const mongoose = require('mongoose');
const { Schema } = mongoose;

const clientSchema = new Schema({

    name: String,
    email: String,
    cuil: String,
    phone: Number,
    adress: {
            street: String,
            streetNumber: Number,
            RoofNumber: String,
            flat: Number
             }

});

 mongoose.model('clients', clienteSchema);

// А это мой пост и получаю в clientController:

get
app.get('/api/clients', async (req, res) => {
    console.info('Obtaining clients');
    Client = await Client.find().
             populate(client,{path:"adresses"},function(err,clients){
             res.send(clients);

});

                              });

// post:

       app.post('/api/clients', async (req, res) => {
             const { name, email, cuil, phone,address} = req.body;

                const client = new Client({
                name,
                email,
                 cuil,
                phone,
               address: new Address({
                          street: {type: String},
                         StreetNumber:{type: Number},
                          RoofNumber:{type: String},
                          flat:{type: Number}
                                     }), type:Object
                                        });

                   try {
                       let newClient = await client.save(); 

                         res.status(201).send(newClient); 
                        } catch (err) {
                          if (err.name === 'MongoError') {
                          res.status(409).send(err.message);
                                       }

                         res.status(500).send(err);
                                         }
                                              });

1 Ответ

0 голосов
/ 19 октября 2019

Вам необходимо создать свой клиент в вашем почтовом маршруте следующим образом:

const client = new Client({
  name,
  email,
  cuil,
  phone,
  address: {
    street: address.street,
    streetNumber: address.streetNumber,
    RoofNumber: address.RoofNumber,
    flat: address.flat
  }
}
);

Примечание: имена полей в адресе могут отличаться в зависимости от того, каков ваш req.body.address.

Я полагаю, что ваш req.body выглядит так:

{
  name : "Name",
  email: "abc@def.net",
  cuil: "cuil",
  phone: 1234567,
  address: {
    street: "street name",
    streetNumber: 10,
    RoofNumber: "roof number",
    flat: 12
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...