如何修复“ TypeError:无法读取Javascript中的未定义属性”标题”

时间:2019-07-18 12:38:07

标签: javascript node.js mongodb mongoose postman

我刚开始使用Javascript和Node.js。 我有一个server.js。

var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/swag-shop');

var Product = require('./model/product');

app.post('/product', function(request, response) {
  var product = new Product();

  product.title = request.body.title;
  product.price = request.body.price;
  product.save(function(err, savedProduct) {
    if (err) {
      response.status(500).send({
        error: "Couldn't save product. Something is wrong!"
      });
    } else {
      response.send(savedProduct);
    }
  });
});

在本文中,我指的是其他JavaScript。 (var Product = require('./model/product');)

这是这里:

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

var product = new Schema({
    title: String,
    price: Number,
    likes: {type: Number, default: 0},
});

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

我想用Postman制作原型,所以我发布了这个json。

{
   "title":"ubi",
   "price":12.23
}

这是我得到的错误消息。

  

TypeError:无法在读取未定义的属性“ title”   C:\ Personal \ html-css \ 11-Intro_to_Node_Mongo_and_REST_APIs \ swag-shop-api \ server.js:11:51

有什么问题吗?

2 个答案:

答案 0 :(得分:4)

如果您要访问请求的正文,则可以使用bodyParser中间件来解析请求正文

const express = require('express');
const app = express();

app.use(express.bodyParser()); 

答案 1 :(得分:0)

app.use(express.json())

将其放入您的app.js