मुझे जेड टेम्पलेट फ़ाइल (index.jade) में घोषित एक चर (कॉन्फिग) से परेशानी हो रही है, जो एक जावास्क्रिप्ट फ़ाइल में पारित नहीं हुआ है, जो तब मेरी जावास्क्रिप्ट क्रैश करता है। यहाँ फ़ाइल (विचार / 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));
और यहाँ मेरी जावास्क्रिप्ट फ़ाइल का एक हिस्सा है जो क्रैश (सार्वजनिक / जावास्क्रिप्ट / app.js) करता है:
(function() {
var socket = new io.Socket(config.address, {port: config.port, rememberTransport: false});
मैं लोकलहोस्ट (मेरी अपनी मशीन) पर विकास मोड (NODE_ENV = विकास) पर साइट चला रहा हूं। मैं डिबगिंग के लिए नोड-इंस्पेक्टर का उपयोग कर रहा हूं, जिसने मुझे बताया कि कॉन्फ़िगर चर सार्वजनिक / javascripts / app.js में अपरिभाषित है।
कोई विचार?? धन्यवाद!!