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)

私はそれについて多くのことを読み、多くの解決策を試しましたが、まだそのエラーが発生しています。node-inspector を使用しましたが、その行の後にエラーが表示されます -

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:

<!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>

パッケージ.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"
  }
}

どんな手掛かり?

4

1 に答える 1