Express:如何在node js express中要求一个文件并将参数值传递给它?

Express: How to require a file in node js express and pass a parameter value to it?

这个问题与如何在node.js中require一个文件并在request方法中传递一个参数,但不传递给模块有很大关系? -- 问题.

我有一个节点 js Express 应用程序。当访问者访问http://localhost/getPosts时,主节点js文件需要./routes/posts文件并发送数据库连接到需要的文件。

app.use('/getPosts', require('./routes/posts')(myDatabase));

./routes/posts 文件的内容如下:

var express = require('express');
var router = express.Router();

//Do something with myDatabase here

router.get('/', (req, res, next) => {
    res.render('index');
});
module.exports = router;

我的网站有多个页面,即多个页面需要连接数据库。但是不可能使用同一个客户端(Node JS 服务器)与同一个数据库建立多个连接。这就是为什么我尝试在主页中添加连接代码。 如何在代码的注释区域获取 myDatabase 变量?

您应该导出 returns 路由器的功能,例如:

module.exports = dbConnection => {
    var express = require('express');
    var router = express.Router();

    router.get('/', (req, res, next) => {
        res.render('index');
    });

    return router;
};