如何修复'TypeError:无法读取 Javascript 中未定义的属性'标题'
Posted
技术标签:
【中文标题】如何修复\'TypeError:无法读取 Javascript 中未定义的属性\'标题\'【英文标题】: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.body
是undefined
。
【参考方案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 中
【讨论】:
以上是关于如何修复'TypeError:无法读取 Javascript 中未定义的属性'标题'的主要内容,如果未能解决你的问题,请参考以下文章
如何修复“TypeError:无法读取未定义的属性 'toString'” |不和谐.js
如何修复未捕获的 TypeError:无法读取 null 的属性“outerHTML”
如何修复 TypeError:在使用 bcryptjs 对 GraphQL 突变进行哈希密码期间无法读取未定义的属性“哈希”?
构建新的 Vue CLI 3 项目时,如何修复 terser-webpack-plugin 中的“TypeError:无法读取未定义的属性“缩小”?