Tôi đang gặp sự cố với một biến (cấu hình) được khai báo trong tệp mẫu ngọc bích (index.jade) không được chuyển đến tệp javascript, điều này sau đó khiến javascript của tôi gặp sự cố. Đây là tệp (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')
Đây là một phần trong app.js của tôi (phía máy chủ):
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 javascript của tôi bị lỗi (public / javascripts / app.js):
(function() {
var socket = new io.Socket(config.address, {port: config.port, rememberTransport: false});
Tôi đang chạy trang web ở 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, điều này cho tôi biết rằng biến cấu hình không được xác định trong public / javascripts / app.js.
Có ý kiến gì không ?? Cảm ơn!!