在使用快速路由器加载路由器模块时传递要求的参数

时间:2020-09-30 09:36:18

标签: javascript node.js express

这个问题与this非常相关。

在我的模块中,我使用以下内容:

const express       = require('express'),
      router        = express.Router();
...
module.exports = router;

我需要访问app.js文件中的对象。像const routes = require(./routes/route.js)(data)之类的东西。

我尝试过的事情

  • module.exports = router(data),但是路由器对象中未定义req

  • 在需要后在app.js中创建route的实例。但这会导致相同的错误消息。 (就像这样:

var route = new Route();
route.data = data
  • 与我提到的文章大致相同,但是我不确定与路由器对象有什么关系。这不起作用:
module.exports = router(data){
// all routes
};

其他信息

我通常在app.js中使用这样的路由

const route = require('route.js');
app.use(route);

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解您的问题,但是如果您想将数据传递给需要的模块,则可以执行以下操作:

const express       = require('express'),
      router        = express.Router();

module.exports = function(data) {
   // do stuff with data
   router.get('/', (req, res) => res.send(data))

   return router;
}

// and then in app.js

const router = require('router.js')(/* pass data to router*/);

app.use(router)