【发布时间】:2017-08-30 20:43:46
【问题描述】:
我已经尝试了其他一些 stackoverflow 帖子中的所有解决方案,但它并没有解决我的问题。
这是我的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');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, '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.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
var index = require('./routes/index');
var v1 = require('./routes/route');
app.use('/', index);
//routes for api
app.use('/v1',v1);
这是我的post 控制器
module.exports = {
createUser:function (req,res) {
console.log(req.body);
res.send('ok'+req.body.test);
}
}
req.body 返回{},即使请求正文包含参数。
我正在使用邮递员插件检查 api。
更新
邮递员请求
【问题讨论】:
-
你需要发送json,而不是form-data
-
对,有,需要选择“raw”,选择“application/json”
-
在原始选项中是否选择了类型
JSON(application/json) -
啊,不是真正的JSON,应该是
{"test":"hello"} -
application/json用于像这样发布数据{"test":"hello"}时使用,www-form-url-encoded用于在使用bodyParser.urlencoded时从 url 获取数据作为对象中的键值,它们都是不同的,都有自己的用例
标签: javascript mysql node.js express