尝试访问快速路由器文件中配置的const

时间:2018-02-12 11:31:31

标签: node.js express

我是节点js的新手,所以这可能是一个简单的问题。在我的from random import shuffle mylist = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T'] myset = set() while len(myset) < 5: #change 5 to however many you want shuffle(mylist) myset.add(tuple(mylist)) print([list(x) for x in myset]) 文件中,我配置了导入的模块index.js,我希望在我的路由文件中使用此配置。如何传递/访问此配置的常量?我不想在每个文件中配置它。

admin

2 个答案:

答案 0 :(得分:0)

你可以把它变成全球性的。

global.admin = require(&#39; firebase-admin&#39;);

这可以在路由文件中使用。 但我建议你导入每个文件,因为全局声明会使全局命名空间变得混乱,并且查找比局部变量更慢。

答案 1 :(得分:0)

您可以使用顶级中间件在admin对象中定义req属性:

app.use( function (req, res, next) {
    req.admin = admin;
    next();
});

现在,fireBase实例可通过req.admin

在任何路由处理程序中使用

另一种方法包括在需要路由器文件时传递admin const:

index.js:

const myApi = require("./api/my")(admin)

路由器文件:

const myRouter = express.Router();

module.exports = function (admin) {

    myRouter.get('/account', function(req, res) {
        admin.auth().... 
    }

    return myRouter;

}

另一种方法是使用app.set()存储对admin对象的引用,并使用app.get()来获取该引用:

index.js

const admin = require('firebase-admin');
app.set('admin', admin);

路由器文件:

myRouter.get('/account', function(req, res) {
    const admin = req.app.get('admin');
    admin.auth().... 
}