在node.js中传递对express-resources的引用?

时间:2012-01-03 16:22:02

标签: javascript rest node.js resources express

我如何传递数据库参考

nano = require('nano')('http://127.0.0.1:5984')
db = nano.use('database')

到资源'User'(加载express-resource)?

我试过了:

app.resource('user', require('./routes/user'), {db: db});

但这不起作用。

1 个答案:

答案 0 :(得分:4)

您希望将db传递给user.js路由文件。你正在做的是将它传递给app.resource函数。

app.resource('user', require('./routes/user')(db));

您必须将user.js文件包装在可以接收db作为参数的函数中。

module.exports = function(db) {
  return {
      index: function(req, res) {}
    , new: function(req, res) {}
    , create: function(req, res) {}
    // etc
  };
};

如果你不喜欢这种结构的方式,你也可以使用中间件。

app.use(function(req, res, next) {
  req.db = db;
  next();
});