我在jade模板文件(index.jade)中聲明的變量(config)沒有傳遞給javascript文件,導致我的javascript崩潰。下面是該文件(意見/ 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文件的一部分崩潰(公共/ Java腳本/ app.js):
(function() {
var socket = new io.Socket(config.address, {port: config.port, rememberTransport: false});
我運行在本地主機上的發展模式網站(NODE_ENV =開發)(我自己的機器)。我使用node-inspector進行調試,它告訴我在public/javascripts/app.js中配置變量是未定義的。
任何想法??謝謝!!
[ExpressJS將變量傳遞給JavaScript]可能的副本(http://stackoverflow.com/questions/9268951/expressjs-pass-variables-to-javascript) – laggingreflex 2015-02-03 22:37:13