Есть например базовый скелет express.js
var express = require('express')
, routes = require('./routes')
, http = require('http')
, path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// для примера пусть будет переменная, но может быть и функция. Пример сильно упрощённый.
var a = 1;
app.get('/', routes.index);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
внутренности routes/index.js
exports.index = function(req, res){
res.render('index', { title: 'Express' });
};
Вопрос, как мне
var a = 1;
прокинуть внутрь routes.index? Без создание
a
глобальной и без написание всего кода в app.js.
Гугл не особо помог, примеры у самих visionmedia показывают что они делают
app
глобальным 11 строка
github.com/visionmedia/screenshot-app/blob/master/app.js
потом заводят
app.db
в конкретном примере и дальше его используют по роутам, 7 строка
github.com/visionmedia/screenshot-app/blob/master/routes/palette.js
Интересуют другие способы, если они есть конечно.
С шаблонами всё прекрасно, там есть
app.locals