gpt4 book ai didi

javascript - Node (Express)请求正文为空

转载 作者:IT老高 更新时间:2023-10-28 12:53:15 25 4
gpt4 key购买 nike

今晚我正在使用 Node.JS 和 Restify 开发一个简单的 API,并且在通过 req.params.fieldname 接收参数方面一切正常。我安装了 CouchDB 和 Cradle 以便开始尝试将这些参数放入数据库中,但是在安装完所有内容后 req.params 开始返回为空!

出于其他原因,我应该从 Express 开始,所以我尝试切换到它,看看我是否可以让它工作,但没有这样的运气。

var express = require('express');
var app = express.createServer();

app.configure(function(){
app.use(express.bodyParser());
app.use(express.cookieParser());
});

app.post('/', function(req, res){
res.send(req.body);
});

app.listen(8080, function() {
console.log('Printomatic listening at', app.url);
});

我尝试了无数种变体,但无论什么 req.body 都返回为空。我正在使用 http-console 进行测试,并发送与 {"name":"foobar"}

内容一样简单的 POST/

我非常沮丧,以至于此时我开始怀疑我在安装 Cradle/CouchDB(分别与 NPM 和 Homebrew 一起安装)时是否破坏了某些东西。任何帮助将不胜感激,因为这有点时间敏感。提前感谢您的帮助!

最佳答案

您提到您发布了 JSON 数据({"name": "foobar"})。确保发送 Content-Type: application/json ,否则 bodyParser 不会解析它。

例如:

$ curl -d 'user[name]=tj' http://local/
$ curl -d '{"user":{"name":"tj"}}' -H "Content-Type: application/json" http://local/

这是因为 bodyParser 解析 application/jsonapplication/x-www-form-encodedmultipart/form- data,它根据Content-Type选择使用哪个解析器。

关于javascript - Node (Express)请求正文为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9901581/

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