не удалось сохранить массив идентификаторов Монго - PullRequest
1 голос
/ 21 апреля 2020

У меня есть модель Order, которая выглядит следующим образом

const mongoose = require('mongoose');

const orderSchema = mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    products: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Product', required: true }]
});

module.exports = mongoose.model('Order', orderSchema);

Это OrderController:

exports.orders_create_order = (req, res, next) => {
  console.log("======This is what we're sending to the endpoint==============================");
  console.log(req.body);
  console.log('====================================');

  const order = new Order({

    _id: mongoose.Types.ObjectId(),
    products: req.body.products
  });
   order.save().then(result => {
     console.log('====================================');
     console.log("This is what is getting saved");
     console.log(result);
     console.log('====================================');
      res.status(201).json({
        message: "Order stored",
        createdOrder: {
          _id: result._id,
          products: result.product
        }
      });
    })
    .catch(err => {
      console.log(err);
      res.status(500).json({
        error: err
      });
    });
};

Он принимает массив объектов, которые я отправляю из интерфейса реакции вот так:

    axios.post("http://ocalhost:4500/orders/", {"products":"[5e9e7edb4e0e5100041e3aa1, 5e9e85824e0e5100041e3aa4, 5e9e859d4e0e5100041e3aa6]"})
    .then(res => {
        console.log('=======This is the data we are getting from saving new wishlist at the frontend=============================');
        console.log(res.data);
        console.log('====================================');

    })
    .catch(err =>
        console.log(`The error we're getting from the backend--->${err}`))

я получаю здесь ошибку:

      message: 'Cast to Array failed for value "[5e9e7edb4e0e5100041e3aa1, 5e9e85824e0e5100041e3aa4, 5e9e859d4e0e5100041e3aa6]" at path "products"',

Скажите, пожалуйста, что я здесь не так делаю?

1 Ответ

1 голос
/ 21 апреля 2020

Вы пытаетесь отправить продукты в виде строки, это должен быть массив, подобный этому:

{
    "products": [
        "5e9e7edb4e0e5100041e3aa1",
        "5e9e85824e0e5100041e3aa4",
        "5e9e859d4e0e5100041e3aa6"
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...