Node.js的PUT或POST请求到Rails 3服务器

我试图从Node.js到我的Rails 3服务器进行PUT和/或POST请求。 我正在传递我的参数在身体,但他们没有变成Rails控制器中的参数散列。 我的代码如下:

http = require('http'); request = require('request'); qs = require('qs'); data = qs.stringify({name: 'Aaron', points: 10}); request_opts = { uri: 'http://localhost:3000/users/update', method: 'PUT', body: data } request(request_opts, function() { console.log(arguments) }); 

我把一个debugging器放在我的Rails控制器中,params是零,但response.body.read返回data的string。

我怎样才能从Node.js的参数与Rails兼容的PUT / POST请求?

querystring模块将序列化您的数据作为参数编码forms。 默认情况下,rails需要一个JSON序列化的实体。 您应该使用JSON.stringify而不是qs.stringify将您的用户序列化到请求正文中。 或者,您可以显式指定application/x-www-form-urlencoded的内容types头来告诉rails您要发送的正文的types。