如何在所有路由文件中使用app.js变量?

时间:2017-07-17 07:24:45

标签: node.js cassandra

如何在routes / index.js文件中使用clients变量。

这是我的代码,

app.js

clients = new cassandra.Client({ contactPoints:[config.contactPoints], keyspace: config.keyspace,authProvider: new cassandra.auth.PlainTextAuthProvider(config.userName, config.password)});

3 个答案:

答案 0 :(得分:0)

您可以在index.js中定义方法,将其导出并将客户端作为参数传递给创建的方法。

在index.js

var clients;

exports.assignVal = function(clients){
    this.clients = clients;
};

在app.js

routes = require('./index');
routes.assignVal(clients);

答案 1 :(得分:0)

如果您希望分别为每个请求确定此变量的范围,可以使用res.locals,在其他情况下,您可以使用app.locals

答案 2 :(得分:0)

您可以稍微更改路由器文件以传入参数。像这样:

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

module.exports = function(your variable) {
  // router.get(...) etc.

  return router
}

然后在app.js,当您require路由器时:

var index = require('./routes/index')(your variable)

显然,确保在要求路由器之前定义了变量。