在node.js中传递expression式资源的引用?

我如何通过例如数据库引用

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

到资源“用户”(加载快速资源 )?

我试过了:

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

但是这不起作用。

你想传递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(); });