我有使用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
答案 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是解析的查询字符串数据。