gpt4 book ai didi

javascript - 请求正文在 KOA 中未定义

转载 作者:IT老高 更新时间:2023-10-28 23:14:19 25 4
gpt4 key购买 nike

我有 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 中我找不到我的数据。在 google chrome 开发者工具中,我可以看到标题,一切都可以发送,但我在 koa 中看不到。

更新

正确的是:

   function *getit(){
console.log(this.request.body); //undefined
}

最佳答案

有趣的是,我遇到了同样的错误,但我的问题是 app.use() 语句的顺序。以下不适用于我,并为 this.request.body 返回“未定义”:

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 和 node v0.11.12。

关于javascript - 请求正文在 KOA 中未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22148087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com