我有像下面这样的KOA:
var koa = require('koa'),
bodyParser = require('koa-body-parser'),
router = require('koa-router'),
app = koa();
app.use(router(app));
app.use(bodyParser());
app.post('http://localhost/get',getit);
function *getit(){
console.log(this.req.body); //undefined
}
然后通过jquery ajax发送一个帖子要求:
var xhr = $.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: 'http://localhost/getit',
data: {"name":"me"},
success: function(response) {
}
});
但是在koa和this.req
我找不到我的数据。在谷歌浏览器开发人员工具中,我可以看到标题,并且一切正常,但是我在koa中看不到它。
更新资料
正确的是:
function *getit(){
console.log(this.request.body); //undefined
}
有趣的是,我遇到了相同的错误,但是我的问题是app.use()语句的顺序。以下内容对我不起作用,并为此this.request.body返回“ undefined”:
var koa = require('koa');
var router = require('koa-router');
var bodyParser = require('koa-body-parser');
var app = koa();
app.use(router(app));
app.use(bodyParser());
app.post('/login', function *() {
this.response.body = this.request.body;
});
app.listen(3000);
但是,如果我将两个app.use()语句的顺序颠倒为以下内容:
app.use(bodyParser());
app.use(router(app));
然后,我可以在this.request.body中看到这些元素。我正在使用koa v0.5.5,koa-body-parser v1.0.0,koa-router v3.1.2和节点v0.11.12。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句