【问题标题】:POST array of data in the APIPOST API 中的数据数组
【发布时间】:2021-02-09 00:36:30
【问题描述】:

我是新来的,需要你们的帮助。

我想在 API 中发布这组数据。

这是我的代码:

Order.js

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

let orderSchema = new Schema(
  {
    order_details: {
      type: [String],
    },
    total: {
      type: Number,
    },
  },
  {
    collection: 'orders',
  },
);
module.exports = mongoose.model('Order', orderSchema);

post.route.js


const express = require('express');

const postRoute = express.Router();

let OrderModel = require('../models/Order');

//create order

postRoute.route('/order').post((req, res, next) => {
  OrderModel.create(req.body, (error, data) => {
    if (error) {
      return next(error);
    } else {
      res.json(data);
    }
  });
});

当我检查我的 localhost:4000/api/order 时,它只显示 TOTAL 而不是 ORDER_DETAILS,它是空的。像这样。

[{"order_details":[], "total":395,"__v":0}

我知道我在这里遗漏了一些东西,但我不知道如何解决它。没有错误或任何东西。只有 ORDER_DETAILS 数组是空的。它在浏览器中有一个数据,我需要的只是将 ORDER_DETAILS 存储到 API。请帮忙。

【问题讨论】:

    标签: node.js express mongoose mongoose-schema


    【解决方案1】:

    我认为这与您的请求正文有关。尝试记录请求正文并检查。我很确定order_detailsreq.body 中是错误的。 添加

    console.log('Request Body: ', req.body)
    

    在调用 OrderModel.create 函数之前。

    【讨论】:

    • 嗨,@Cyber​​Eternal。控制台请求正文没有任何问题,它实际上有数据。我能够通过更改 order_details 类型架构来解决它。我将类型 [String] 更改为 Array。如果 [String] 它只显示数组的 ID 而不是所有数据,但如果我选择数组类型,它会显示所有详细信息,如产品名称和价格等。不管怎样,你的评论让我很受启发。非常感谢。
    猜你喜欢
    • 2019-12-31
    • 1970-01-01
    • 2022-01-01
    • 2018-10-31
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多