在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(); });