【问题标题】: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();
    });
    

    【讨论】:

    • 你不需要在中间件中调用 next 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 2015-10-01
    • 1970-01-01
    • 2012-08-09
    • 2018-12-11
    相关资源
    最近更新 更多