Node.js Restify不解析PUT方法resquest中的数据

Node.js Restify不解析PUT方法resquest中的数据,node.js,restify,Node.js,Restify,我使用的是最新版本(2.6.1)的Restify,我真的不知道Restify会发生什么,因为它不是解析在PUT/POST方法上提交的数据,它根本没有意义,Restify应该将数据分配给“req.params”。我已经浪费了很多时间来解决这个问题,但我没有,我不知道发生了什么。这是一个真正的问题还是我完全误解了文档 因此,我执行以下curl命令: curl -is -X PUT -d "phone=1-800-999-9999" http://localhost:8080/note 它只是不返回

我使用的是最新版本(2.6.1)的Restify,我真的不知道Restify会发生什么,因为它不是解析在PUT/POST方法上提交的数据,它根本没有意义,Restify应该将数据分配给“req.params”。我已经浪费了很多时间来解决这个问题,但我没有,我不知道发生了什么。这是一个真正的问题还是我完全误解了文档

因此,我执行以下curl命令:

curl -is -X PUT -d "phone=1-800-999-9999" http://localhost:8080/note
它只是不返回任何参数,它必须返回在上面的curl命令中提交的phone值:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 4
Date: Wed, 29 Jan 2014 15:14:22 GMT
Connection: keep-alive
"{}"
这是behinded的完整代码,再简单不过了:

var restify = require('restify');
var server = restify.createServer({
  name: 'App',
  version: '1.0.0'
});
server.use(restify.acceptParser(server.acceptable));
server.use(restify.bodyParser());
server.use(restify.queryParser());
function send(req, res, next) {
  res.send(JSON.stringify(req.params));
  return next();
}
var server = restify.createServer();
server.put('/note', send);
server.listen(8080, function() {
  console.log('%s listening at %s', server.name, server.url);
});

有人对这种行为有答案吗?这真的很令人沮丧…

试着将其发布为JSON。像这样:

{ "phone" : "1-800-999-9999" }

你是说像这样<代码>curl-is-X PUT-d'{“phone”:“1-800-999-9999”}http://localhost:8080/note。它不起作用,我还尝试了通过
client.put('/note',{phone:'1-800-999-9999',回调)发送
restify.createJsonClient
-H“Content-Type:application/json”
,但也不起作用。奇怪的是,这应该可以非常顺利地工作。您可能需要封装JSON对象:
{“data”:{“phone”:“1-800-999-9999”}
,然后解析后使用
req.params.data.phone
访问它。我花了很多时间,问题是我定义了两次服务器,而在第二次定义中,我没有指定使用queryParser。纯粹缺乏注意力,也许我工作太多了。非常感谢。啊,我也应该在你的问题中看到这一点。很高兴你已经解决了。