如何修复';TypeError:无法读取属性';标题';未定义的';在Javascript中
我刚开始学习Javascript和Node.js。 我有一个server.js如何修复';TypeError:无法读取属性';标题';未定义的';在Javascript中,javascript,node.js,mongodb,mongoose,postman,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=要求('./型号/产品'); app.post('/product',函数(请求、响应){ var product=新产品(); product.title=request.body.title; product
var mongoose=require('mongoose');
var db=mongoose.connect('mongodb://localhost/swag-shop');
var Product=要求('./型号/产品');
app.post('/product',函数(请求、响应){
var product=新产品();
product.title=request.body.title;
product.price=request.body.price;
product.save(函数(err,savedProduct){
如果(错误){
响应。状态(500)。发送({
错误:“无法保存产品。出现问题!”
});
}否则{
响应。发送(保存产品);
}
});
});
在本文中,我提到了另一个javascript<代码>(变量产品=需求('./型号/产品');)
这是:
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\u to\u Node\u Mongo\u and\u REST\u api\swag shop api\server.js:11:51
知道问题出在哪里吗?如果希望访问请求体,可以使用中间件解析请求体
const express = require('express');
const app = express();
app.use(express.bodyParser());
如果希望访问请求体,可以使用中间件解析请求体
const express = require('express');
const app = express();
app.use(express.bodyParser());
把这个放到你的app.js中
把这个放到你的app.js中你有没有
控制台。记录请求?错误意味着请求。body
是未定义的
。你有没有控制台。记录请求?错误意味着请求。body
是未定义的
。它说createServer不是一个函数。TypeError:express.createServer不是function@Piplikoc,在您的示例中,使用express()而不是express.createServer():)我得到了这个错误,但我解决了它。如果有人有同样的问题,这里是解决办法。错误:大多数中间件(如bodyParser)不再与Express捆绑,必须单独安装。请看。我搜索了一下,在这里找到了答案。您应该键入npm install express@“>=3.0.0它表示createServer不是函数。TypeError:express.createServer不是函数function@Piplikoc,在您的示例中,使用express()而不是express.createServer():)我收到了这个错误,但我解决了它。如果有人有相同的问题,这里是解决方案。错误:大多数中间件(如bodyParser)不再与Express捆绑,必须单独安装。请参阅。我搜索了它,在这里找到了解决方案。您应该键入npm install Express@“>=3.0.0