भेजे जाने के बाद हेडर सेट नहीं कर सकते हैं मैं node.js सीखने के लिए नया हूं और ऐसा लगता है कि ठीक करने के लिए कोई त्रुटि नहीं हो सकती है।node.js + express 3 + socket.io =
यह एक बहुत ही सरल और शुरुआती कोड है, इसलिए उसे अधिक स्पष्टीकरण की आवश्यकता नहीं है, इसके अलावा यह स्थानीयहोस्ट पर ठीक काम करता है, लेकिन उत्पादन सर्वर पर टूट जाता है।
App.js
var express = require('express')
, routes = require('./routes')
, http = require('http')
, path = require('path');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 8000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function(){
app.use(express.errorHandler());
});
app.get('/', routes.index);
var server = app.listen(8000);
var io = require('socket.io').listen(server);
server.listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
});
और यहाँ खतरनाक त्रुटि है!
http.js:644
throw new Error('Can\'t set headers after they are sent.');
^
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (http.js:644:11)
at ServerResponse.res.setHeader (/home1/artalatc/public_html/cloud1/node_modules/express/node_modules/connect/lib/patch.js:59:22)
at next (/home1/artalatc/public_html/cloud1/node_modules/express/node_modules/connect/lib/proto.js:153:13)
at Function.app.handle (/home1/artalatc/public_html/cloud1/node_modules/express/node_modules/connect/lib/proto.js:198:3)
at Server.app (/home1/artalatc/public_html/cloud1/node_modules/express/node_modules/connect/lib/connect.js:66:31)
at Manager.handleRequest (/home1/artalatc/public_html/cloud1/node_modules/socket.io/lib/manager.js:564:28)
at Server.<anonymous> (/home1/artalatc/public_html/cloud1/node_modules/socket.io/lib/manager.js:118:10)
at Server.EventEmitter.emit (events.js:115:20)
at HTTPParser.parser.onIncoming (http.js:1793:12)
at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23)
समस्या है क्योंकि इस तरह टिप्पणी त्रुटि को दूर करता var io = require('socket.io').listen(server);
पर हो रहा है।
अपनी मार्ग फ़ाइल पोस्ट करें। त्रुटि index.jade फ़ाइल से नहीं है – c0deNinja
जोड़ा गया। यह एक ऑटो जेनरेट की गई फाइल है। – user1574965
हम्म और इसलिए विकास में कोई त्रुटि नहीं है, लेकिन केवल प्रोड में? – c0deNinja