Как передать переменную из файла шаблона нефрита в файл сценария?

У меня проблемы с переменной (config), объявленной в файле шаблона нефрита (index.jade), который не передается в файл javascript, который затем делает сбой моего javascript. Вот файл (views / index.jade):

h1 #{title}

script(src='./socket.io/socket.io.js')
script(type='text/javascript')
  var config = {};
  config.address = '#{address}';
  config.port = '#{port}';
script(src='./javascripts/app.js')

Вот часть моего app.js (на стороне сервера):

  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.set('address', 'localhost');
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

// Routes

app.get('/', function(req, res){
  res.render('index', {
    address: app.settings.address,
    port: app.settings.port
});
});

if (!module.parent) {
  app.listen(app.settings.port);
  console.log("Server listening on port %d",
app.settings.port);
}

// Start my Socket.io app and pass in the socket
require('./socketapp').start(io.listen(app));

А вот часть моего файла javascript, которая дает сбой (public / javascripts / app.js):

(function() {
        var socket = new io.Socket(config.address, {port: config.port, rememberTransport: false});

Я запускаю сайт в режиме разработки (NODE_ENV = development) на локальном хосте (моем собственном компьютере). Я использую инспектор узлов для отладки, который сообщил мне, что переменная конфигурации undefined в public / javascripts / app.js.

Есть идеи ?? Спасибо !!

112
задан Michael Eilers Smith 2 January 2012 в 07:46
поделиться