2013-04-14 7 views
4

노드 버전 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) 

을, 그리고 많은 솔루션을 시도하지만 난 아직도 그 받고 있어요 오류.

/** 
* 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 :

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

app.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 :

01 23,516,
<!DOCTYPE html> 
<html> 
    <head> 
    <title>{{ title }}</title> 
    <link rel='stylesheet' href='/stylesheets/style.css' /> 
    </head> 
    <body> 
    <h1>{{ title }}</h1> 
    <p>Welcome to {{ title }}</p> 
    </body> 
</html> 

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" 
    } 
} 

어떤 단서?

+0

당신이하지 않는 것 같습니다 게시 코드와 테스트. – robertklep

+0

같은 node.js 버전에서 표현 하시겠습니까? – ohadinho

+0

예, 동일한 버전입니다. 나는 당신의 문제를 일으킬 수있는 당신의 코드에서 명백한 것을 보지 않을 것이다. – robertklep

답변

1

귀하의 socket.io 버전에 오류가있는 것으로 보입니다.

사용이 :

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

(나는뿐만 아니라 로컬로 테스트를 잘 작동) 문제를 가지고 [email protected]

관련 문제