Разместить элемент со смесью объектов и массивов в Mongo - массив не публикует данные - PullRequest
0 голосов
/ 20 марта 2019

Я отправляю и отправляю в Mongodb с Node, Express, Mongoose и Vue.js.Элемент представляет собой смесь объектов и массивов.Публикация объекта выполняется успешно после отправки массива в Mongo и создает идентификатор, но данные не публикуются.

Схема Mongoose:

   const ReportSchema = Schema(
    {
        month: String,
        projects:
        [
          {
          code: String,
          name: String,
          staff: String,
          support: String
          }               // it was missing here 
        ],

API:

app.post('/api/report/create', (req, res) => {
  const report = new Report({
    month: req.body.month,
    projects:
    [
      {
      code: req.body.projects.code,
      name: req.body.projects.name,
      staff: req.body.projects.staff,
      support: req.body.projects.support
      }
    ],

Метод Vue.js:

methods: {
    create(){
      let data = { 
        month: this.month,
        projects: [
          {
            code: this.projects.code,
            name: this.projects.name,
            staff: this.projects.staff,
            support: this.projects.supported
          }
        ],

Когда я выполняюотправьте запрос в Почтальоне, возвращение в порядке для объектов, но массивы не публикуют данные.

"report": {
        "_id": "5c91b6d449f21705a0270732",
        "month": "January",
        "projects": [
            {
                "_id": "5c91b6d449f21705a0270733"
            }
        ],
        "__v": 0
    }

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 20 марта 2019

В вашем методе создания,

let data = { 
        month: this.month,
        projects: [
          {
            code: this.projects.code,
            name: this.projects.name,
            staff: this.projects.staff,
            support: this.projects.supported
          }
        ],

Вы отправляете проекты в виде массива и обращаетесь к нему как к объекту в своем API ---> req.body.projects.code Внесите следующие изменения в свой API, и это должноработа.

app.post('/api/report/create', (req, res) => {
  const report = new Report({
    month: req.body.month,
    projects: req.body.projects 
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...