完善2.6后发布数据

kdi*_*eur 6 curl node.js restify

我刚刚开始尝试Restify(和NodeJS一般),我在获取用户POST数据时遇到了一些麻烦.

我有一个基本的Node应用程序.在文档和一些博客文章中,我读到它就像使用queryParser一样简单,但它不起作用.我认为问题出在我的CURL命令上.

节点应用:

var restify = require('restify');

function userCreation(request, result, next) {
  console.log(request.body);
  console.log(request.query);
  console.log(request.params);
  result.send({ name: request.params.name });
  return next();
}

var server = restify.createServer({ version: '1.0.0' });
server.use(restify.gzipResponse());
server.use(restify.queryParser());

server.post({ path: '/users', versions: ['1.0.0'] }, userCreation);

server.listen(8080, function() {
  console.log('%s listening at %s', server.name, server.url);
});
Run Code Online (Sandbox Code Playgroud)

CURL命令:

curl -is -X POST -H 'accept-version: 1.0.0' -d '{ "name": "John" }' http://127.0.0.1:8080/users

curl -is -X POST -H 'accept-version: 1.0.0' -d 'name=John' http://127.0.0.1:8080/users
Run Code Online (Sandbox Code Playgroud)

回应是:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2
Date: Fri, 01 Nov 2013 09:40:08 GMT
Connection: keep-alive

{}
Run Code Online (Sandbox Code Playgroud)

Node日志是:

restify listening at http://0.0.0.0:8080
undefined
{}
{}
Run Code Online (Sandbox Code Playgroud)

希望有人可以帮助我:)

凯文

smr*_*mde 2

使用bodyParser代替queryParser.