2017-07-17 26 views
1

如何使用clients變量路線/ index.js文件。如何使用app.js變量的所有路由文件?

這裏是我的代碼,

app.js

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

這是一個Express應用程序? – ImClarky

+0

是的,這是明確的應用@ImClarky –

回答

0

可以在index.js,將其導出定義一個方法,並通過客戶端作爲參數來創建的方法。

在index.js

var clients; 

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

在app.js

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

感謝我想你的代碼,但像類型錯誤的返回錯誤:routes.assignVal不是一個函數 –

0

如果你想先限定該變量爲每個請求separatly可以使用res.locals,在其他情況下,你可以使用app.locals

+0

感謝這一點,但它會更有助於充分,如果你給直接的解決方案,而不是文件,因爲我是新在節點js中。 –

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) 

顯然,請確保您的變量是需要你的路由器中定義。

+0

感謝我想你的代碼,但像類型錯誤的返回錯誤:無法讀取屬性未定義在app.js「應用」 –

相關問題