Tôi đang gặp sự cố với biến (config) được khai báo trong tệp mẫu ngọc bích (index.jade) không được chuyển đến tệp javascript, sau đó làm lỗi javascript của tôi. Dưới đây là file (views/index.jade):Làm thế nào để chuyển biến từ tệp mẫu ngọc bích sang tệp tập lệnh?
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')
đây là một phần của app.js của tôi (server side):
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));
Và đây là một phần của tập tin của tôi rằng javascript tai nạn (công cộng/Javascripts/app.js):
(function() {
var socket = new io.Socket(config.address, {port: config.port, rememberTransport: false});
tôi đang chạy các trang web trên chế độ phát triển (NODE_ENV = phát triển) trên localhost (máy của riêng tôi). Tôi đang sử dụng trình kiểm tra nút để gỡ lỗi, cho tôi biết rằng biến cấu hình không được xác định trong public/javascripts/app.js.
Bất kỳ ý tưởng nào ?? Cảm ơn!!
có thể trùng lặp của [Biến ExpressJS Pass thành JavaScript] (http://stackoverflow.com/questions/9268951/expressjs-pass-variables-to-javascript) – laggingreflex