【问题标题】:How to fix 'TypeError: Cannot read property 'title' of undefined' in Javascript如何修复'TypeError:无法读取 Javascript 中未定义的属性'标题'
【发布时间】:2019-11-27 09:32:23
【问题描述】:

我刚刚开始使用 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:无法读取未定义的属性“标题” C:\Personal\html-css\11-Intro_to_Node_Mongo_and_REST_APIs\swag-shop-api\server.js:11:51

知道有什么问题吗?

【问题讨论】:

  • 你有没有console.log这个请求?
  • 错误表示request.bodyundefined

标签: javascript node.js mongodb mongoose postman


【解决方案1】:

如果你想访问请求体,可以使用bodyParser中间件解析请求体

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

app.use(express.bodyParser()); 

【讨论】:

  • 它说 createServer 不是一个函数。 TypeError: express.createServer 不是函数
  • @Piplikoc ,在您的示例中,使用 express() 而不是 express.createServer() :)
  • 我收到了这个错误,但我解决了。如果有人有同样的问题,这里就是解决方案。错误:大多数中间件(如 bodyParser)不再与 Express 捆绑在一起,必须单独安装。请参阅github.com/senchalabs/connect#middleware。我搜索了它,我在这里找到了解决方案。 github.com/smurthas/fitbit-js/issues/15 你应该在终端中输入npm install express@">=3.0.0 <4.0.0" --save 命令。谢谢你的帮助,我的问题解决了!
【解决方案2】:
app.use(express.json())

把它放在你的 app.js 中

【讨论】:

    猜你喜欢
    • 2019-08-19
    • 2019-11-05
    • 2021-10-03
    • 2021-10-28
    • 2019-10-03
    • 2022-01-12
    • 2022-11-22
    • 2020-09-12
    相关资源
    最近更新 更多