Невозможно установить заголовки после их отправки.

Я использую узловые версии 0.10.3 и Express 3.1.1.

Я пытаюсь вернуть простой ответ, но я получаю следующую ошибку:

http.js:692 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:692:11) 

Я много читал об этом и пробовал много решений, но я все еще получаю эту ошибку. Я использовал узел-инспектор, и я получаю сообщение об ошибке после этой строки –

 res.render('index', { title: 'Express' }); 

app.js:

 /** * Module dependencies. */ var express = require('express') , http = require('http') , path = require('path') , socketio = require('socket.io'); var app = express() , server = http.createServer(app) , io = socketio.listen(server); app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'hjs'); 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()); }); server.listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); io.configure('production', function(){ io.enable('browser client etag'); io.set('log level', 1); }); io.configure('development', function(){ io.set('log level', 1); }); io.sockets.on('connection', function(socket) { socket.on('event', function(event) { socket.join(event); }); }); require('./routes')(app, io); 

маршруты / index.js:

 var utils = require('../utils') , config = require('../config') , io; module.exports = function(app, socketio) { io = socketio; app.get('/', index); }; var index = function(req, res){ res.render('index', { title: 'Express' }); }; 

просмотров / index.hjs:

    {{ title }}    

{{ title }}

Welcome to {{ title }}

package.json:

 { "name": "blabla", "version": "0.0.1", "private": true, "scripts": { "start": "app.js" }, "dependencies": { "express": "3.0.3", "hjs": "0.0.4", "cradle": "0.6.4", "twiliosig": "0.0.1", "socket.io": "0.9.11" }, "subdomain": "blabla", "engines": { "node": "0.6.x" } } 

Любая подсказка?

Кажется, это ошибка в вашей версии socket.io.

Использовать этот:

 "dependencies": { "express": "3.0.x", "hjs": "0.0.4", "cradle": "0.6.4", "twiliosig": "0.0.1", "socket.io": "0.9.x" } 

Протестировано с socket.io@0.9.16