快递资源自定义映射

时间:2012-02-27 17:59:31

标签: node.js express

在使用app.resource时,我找不到包含任何深度的任何体面文档。

我能找到的唯一信息是在当前文件中创建变量。 Here

我目前的代码如下:

var favs = app.resource('favs', require('./modules/favs'));
favs.map('get', '/user', favs.buses);

然而它回来说这是未定义的?

在我喜欢的模块中。

exports.buses = function (req, res) {
    res.render('favs/buses', {
        title: 'Bus Stops'
    });
});

1 个答案:

答案 0 :(得分:5)

favs.js中存在语法错误:最后一个右括号)是多余的。

除此之外,您似乎将实际模块与从app.resource返回的资源对象混淆。您希望在访问者访问路径时传递对要调用的请求处理程序的引用(在您的情况下为/favs/user)。所以你想要的是:

var favs = require('./modules/favs'),
    favsResource = app.resource('favs', favs);

favsResource.map('get', '/user', favs.buses);

如果您对express-resource处理时感到有些失落,我建议您先使用普通快递,只有在您更熟悉快递如何工作时才开始使用快递资源。 TJ的辅助模块往往缺乏文档,只有在您习惯阅读代码IMO时才应该使用它们。