javascript 파일로 전달되지 않은 jade 템플릿 파일 (index.jade)에 선언 된 변수 (config)에 문제가 있습니다. 이로 인해 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));
다음은 충돌하는 내 자바 스크립트 파일의 일부입니다 (public / javascripts / app.js).
(function() {
var socket = new io.Socket(config.address, {port: config.port, rememberTransport: false});
나는 localhost (내 자신의 컴퓨터)에서 개발 모드 (NODE_ENV = development)에서 사이트를 실행하고 있습니다. 디버깅을 위해 node-inspector를 사용하고 있는데, config 변수가 public / javascripts / app.js에 정의되어 있지 않다고 말했습니다.
어떤 아이디어 ?? 감사!!