使用Restful / Resourceful / Flatiron获取查询字符串参数

时间:2014-02-04 22:30:52

标签: flatiron.js

我有使用Restful / Resourceful / Flatiron的以下节点应用程序:

app.js

var flatiron    = require('flatiron'),
    fixtures    = require('./fixtures'),
    restful     = require('restful'),
    resourceful = require('resourceful');

var app = module.exports = flatiron.app;
app.resources = {};
app.resources.Creature = fixtures.Creature;

app.use(flatiron.plugins.http, {
  headers: {
    'x-powered-by': 'flatiron ' + flatiron.version
  }
});
app.use(restful);
app.start(8000, function(){
  console.log(app.router.routes);
  console.log(' > http server started on port 8000');
  console.log(' > visit: http://localhost:8000/ ');
});

以下是灯具模块:

fixtures.js

var fixtures = exports;

var resourceful = require('resourceful');

// // Create a new Creature resource using the Resourceful library //
fixtures.Creature = resourceful.define('creature', function () {

   var self = this;

   this.restful = true;

   this.all = function (callback) {
     console.log(this);
     callback(null, "ok");   };

 });

如何访问请求/查询字符串参数?例如。如果路线是/生物?foo = bar

我遇到了this issue from the Github repo,但是这些评论意味着可能会有更长时间的获取此数据的方法?

我一直在寻找资源丰富的源代码,我没有看到明确的方法。以下是有问题的一行:

https://github.com/flatiron/resourceful/blob/master/lib/resourceful/resource.js#L379

1 个答案:

答案 0 :(得分:0)

通过NPM Package Manager列出的默认版本已过时,这引起了一些混淆。

请在此处查看Github问题:

https://github.com/flatiron/restful/issues/33

将package.json与NPM安装结合使用可以使用版本组合:

"restful": "0.4.4",
"director": "1.1.x",
"resourceful": "0.3.x",
"director-explorer": "*"

使用这个较新的版本,url格式现在的工作方式为:

/创建/找到?富=酒吧

有问题的方法可以在这里找到:

https://github.com/flatiron/restful/blob/master/lib/restful.js#L506

在撰写本文时,方法如下:

  router.get('/' + entity + '/find', function () {
    var res = this.res,
        req = this.req;
    preprocessRequest(req, resource, 'find');
    resource.find(req.restful.data, function(err, result){
      respond(req, res, 200, entity, result);
    });
  });

关键组件是req.restful.data是解析的查询字符串数据。