【问题标题】:Passing references to express-resources in node.js?在 node.js 中传递对 express-resources 的引用?
【发布时间】:2012-02-01 16:00:20
【问题描述】:
如何传递例如数据库引用
nano = require('nano')('http://127.0.0.1:5984')
db = nano.use('database')
到资源“用户”(加载有express-resource)?
我试过了:
app.resource('user', require('./routes/user'), {db: db});
但这不起作用。
【问题讨论】:
标签:
javascript
rest
node.js
resources
express
【解决方案1】:
您想将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();
});