[英]req.body is empty on posts
I've been searching the site for a while with no luck. 我一直在搜索该网站一段时间,但没有运气。 I have: 我有:
module.exports.locationsCreate = function (req, res) {
console.log(req.body);
Loc.create({
name: req.body.name,
address: req.body.address,
facilities: req.body.facilities.split(","),
coords: [parseFloat(req.body.lng), parseFloat(req.body.lat)],
openingTimes: [{
days: req.body.days1,
opening: req.body.opening1,
closing: req.body.closing1,
closed: req.body.closed1,
}, {
days: req.body.days2,
opening: req.body.opening2,
closing: req.body.closing2,
closed: req.body.closed2,
}]
}, function(err, location) {
if(err) {
sendJsonResponse(res, 400, err);
} else {
sendJsonResponse(res, 201, location)
}
});
};
and I'm getting TypeError: Cannot read property 'split' of undefined and my req.body is empty when making posts even when I have "X-www-form-urlencoded" selected in Postman. 并且我收到TypeError:即使在邮递员中选择了“ X-www-form-urlencoded”,发表帖子时也无法读取未定义的属性“ split”并且我的req.body为空。 In my app.js file I have: 在我的app.js文件中,我有:
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
require('./app_api/models/db');
var index = require('./app_server/routes/index');
var indexApi = require('./app_api/routes/index');
var users = require('./app_server/routes/users');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'app_server', 'views'));
app.set('view engine', 'jade');
// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
I have also tried changing app.use(bodyParser.urlencoded({ extended: false }));
我也尝试过更改app.use(bodyParser.urlencoded({ extended: false }));
to app.use(bodyParser.urlencoded({ extended: true }));
到app.use(bodyParser.urlencoded({ extended: true }));
Any help would be appreciated. 任何帮助,将不胜感激。 I tried to be as specific and detailed as possible. 我试图尽可能具体和详细。
-Edit- Here's what my model looks like: -编辑-这是我的模型的样子:
var mongoose = require( 'mongoose' );
var openingTimeSchema = new mongoose.Schema({
days: {type: String, required: true},
opening: String,
closing: String,
closed: {type: Boolean, required: true}
});
var reviewSchema = new mongoose.Schema({
author: String,
rating: {type: Number, "default": 0, min: 0, max: 5},
reviewText: String,
createdOn: {type: Date, "default": Date.now}
});
var locationSchema = new mongoose.Schema({
name: {type: String, required: true},
address: String,
rating: {type: Number, "default": 0, min: 0, max: 5},
facilities: [String],
coords: {type: [Number], index: '2dsphere', required: true},
openingTimes: [openingTimeSchema],
reviews: [reviewSchema]
});
mongoose.model('Location', locationSchema);
I don't actually see you using the routes you imported used anywhere. 我实际上没有看到您使用导入的路由在任何地方使用。 But any plugin/middleware should be moved above wherever you use app.use(myRoutes)
: 但是,任何插件/中间件上面应该随时随地使用移动app.use(myRoutes)
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
var index = require('./app_server/routes/index');
var indexApi = require('./app_api/routes/index');
var users = require('./app_server/routes/users');
So it turns out my code was correct, I just did not correctly know how to use postman. 所以事实证明我的代码是正确的,只是我不正确地知道如何使用邮递员。 I wasn't typing in any key-value pairs! 我没有输入任何键值对! I feel like an idiot guys. 我觉得自己像个白痴。 Thanks for the help enter image description here 感谢您的帮助, 在此处输入图片描述
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.