首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Restify 2.6发布数据

Restify 2.6发布数据
EN

Stack Overflow用户
提问于 2013-11-01 17:46:32
回答 2查看 4.3K关注 0票数 6

我刚刚开始尝试Restify (和一般的NodeJS ),但我在让用户发布数据时遇到了一些麻烦。

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

节点应用:

代码语言:javascript
复制
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);
});

CURL命令:

代码语言:javascript
复制
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

回应是:

代码语言:javascript
复制
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 2
Date: Fri, 01 Nov 2013 09:40:08 GMT
Connection: keep-alive

{}

节点日志为:

代码语言:javascript
复制
restify listening at http://0.0.0.0:8080
undefined
{}
{}

希望有人能帮助我:)

凯文

EN

回答 2

Stack Overflow用户

发布于 2015-01-16 21:42:48

请使用bodyParser而不是queryParser

票数 2
EN

Stack Overflow用户

发布于 2015-03-22 15:15:41

为了在RESTful服务中处理通过HTTP POST请求发送的JSON文档,您需要:

  1. 在您的服务中使用bodyParser
  2. 当您提交HTTP POST请求时,请确保包含HTTP头"Content-Type: application/json" <

>G29

您的CURL命令应该类似于:

curl -is -X POST -H“内容类型:应用程序/json”-H "accept-version: 1.0.0“-d '{ "name":"John”}‘http://127.0.0.1:8080/users

您的Restify服务代码:

代码语言:javascript
复制
var restify = require('restify');

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

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

server.use(restify.gzipResponse());
server.use(restify.bodyParser());

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

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

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19724281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档