尽管使用app.use(bodyParser.urlencoded({extended:true})),但在js节点程序中主体参数不可用。

时间:2019-05-07 06:08:57

标签: node.js

我已经使用MVC设计模式在node.js中创建了CURD程序,并创建了模型,路由器和控制器。通过使用Postman的POST方法,我已经发送了key,value parir。试图在mongo数据库中创建新记录

问题:尽管我使用了body-parser

,但在node.js控制器中未解析POST键:值

我已经在笔记本电脑中设置了节点环境,这是一个稳定的环境。我已使用console.log在程序中打印了请求对象,该对象打印了很多值,但正文为空:{}值

    // Controller pgm

    const Product = require('../models/product.model');
     exports.product_create = function (req, res, next) {
    console.log(req);
    let product = new Product(
    {
        **name: req.body.name,  (NOT POPULATING FROM BODY)
        price: req.body.price  (NOT POPULATING FROM BODY**)
      }
      );

/以下是服务器程序的一部分,位于单独的文件中//

       const express = require('express');
       const bodyParser = require('body-parser');
       const product = require('./routes/product.route'); // Imports 
      routes  for the products
      const app = express();

//配置应用程序

    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({extended: true}));
    app.use('/products', product);

//下面是路由器程序的一小部分,位于单独的文件中//

    const express = require('express');
    const router = express.Router();



 let ProductSchema = new Schema({
 name: {type: String},
 price: {type: Number},
 });


 // Export the model

   module.exports = mongoose.model('Product', ProductSchema);

1 个答案:

答案 0 :(得分:0)

选择邮递员中的raw和Jason解决了我的问题