1

有没有人设法让 express-resource 的自动加载功能工作?我不能让它开火,但根据文档它应该可以工作: express-resource

我已经尝试让它在我自己的代码和这里提供的 express-resource 中的示例代码中工作。我只是在论坛资源的“加载”函数中添加了一个“console.log”语句,但它似乎永远不会被调用。代码如下:

exports.load = function(id, fn){
  console.log('auto-loader');
  process.nextTick(function(){
    console.log('auto-loader in the callback');
    fn(null, { title: 'Ferrets' });
  });
};

然后在“controller.js”中的代码与这里的示例完全相同:

var forums = app.resource('forums', require('./controllers/forum'));

我想让这个工作的原因是我想要一个毯子函数来为一组特定的路由加载一些数据,而不是把它作为中间件单独添加到每个路由中。例如,我的网站上有“列表”,我想要一个检索前 10 个最近列表的函数。

任何想法都将不胜感激我昨晚花了很多时间困惑并得出代码可能根本不起作用的结论。我真诚地希望我错了,并希望你们中的一个聪明的 cookie 能纠正它,因为如果我不必选择不同的路由模块,我真的很喜欢它!

或者,如果您有一个与 express 一起使用的路由模块,并且您知道它具有正常的自动加载功能,那么也请告诉我?

4

1 回答 1

0

好吧,以防其他人遇到这种情况-我发现我不正确,它确实会触发,但只是有时!

问题是它不会在所有路由上触发。到目前为止,我已经测试过 index、new、show 和 edit。它会触发显示和编辑,但不会触发索引或新建。

我不确定这是否是故意的,如果有人能解释一下它为什么会这样,我会喜欢它吗?

我还在作者的 github 站点上对一个非常相似的问题发表了评论:load function doesn't add to req object on index route

于 2014-01-14T08:55:14.517 回答