【问题标题】:How to transfer variable to routes.index如何将变量传输到 routes.index
【发布时间】:2012-01-05 19:22:19
【问题描述】:

在文件app.js 我有:

  , mongoose = require('mongoose')
  , db = mongoose.connect('mongodb://localhost/expressdb');

  app.get('/', routes.index);

并且我有文件routes/index.js,如果我想将db 变量转移到routes.index 我该怎么办?

【问题讨论】:

    标签: node.js mongodb express mongoose data-transfer


    【解决方案1】:

    我已经设置了一个示例,说明如何通过将 db 作为参数传递给路由模块,然后该模块返回一个函数(其中 db 可见):

    routes.index

    module.exports = function (db) {
      return function(req, res, next) {
        // you can access db here
      }
    }
    

    app.js

    ...
    routes = {};
    routes.index = require('./routes')(db);
    ...
    

    【讨论】:

      【解决方案2】:

      如果您尝试创建另一个连接(即:数据库接口是单例),我认为在连接到数据库以共享连接的库中这是相当标准的。您可以尝试简单地调用

      db = mongoose.connect('mongodb://localeyes/expressdb');
      

      在您的 routes/index.js 文件中,它可能会使用相同的连接。我建议阅读代码以查看它是否会使用现有连接,或者它是否会在您每次调用它时尝试重新连接。

      编辑:再想一想,您还有另一个不那么美味的选择: 你可以让它像这样全球化

      global.db = db;
      

      然后在你的 routes/index.js 中

      var db = global.db;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-25
        • 2021-06-01
        • 2012-07-03
        • 1970-01-01
        相关资源
        最近更新 更多