Właśnie zaczął używać nowej wersji (2.5.5) Express, które domyślnie tworzy katalog ./routes
wraz z ./views
i ./public
Jak uzyskać dostęp do zmiennych zadeklarowanych w głównym app.js w osobnych plikach trasy w pliku node.js Express 2.5.5?
Wewnątrz tras znajduje się plik index.js
który zawiera:
/*
* GET home page.
*/
exports.index = function(req, res){
res.render('index', { title: 'Express' })
};
domyślnie (po uruchomieniu express
z linii poleceń) i jest to odcinek trasy w głównej app.js
:
// Routes
app.get('/', routes.index);
mam ustawić zmienną dla klienta Redis w głównym app.js
:
var redis = require('redis'),
db = redis.createClient();
i zastanawiałem się, w jaki sposób mogę uzyskać dostęp do metod db
(i wszelkie inne moduły I require
w app.js
) zawartych w plikach w ./routes
I don Nie wiadomo, czy jest to dobra praktyka, ale możesz również umieścić swoje moduły w funkcji 'exports.init', która przyjmuje współdzielone instancje jako argumenty. Ta funkcja zwróciłaby rzeczywiste funkcje eksportu i potrzebujesz pliku takiego jak 'var routes = require (" ./ routes/"). Init (db);'. – pimvdb