Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Can';t在发送邮件后设置邮件头_Node.js_Express - Fatal编程技术网

Node.js Can';t在发送邮件后设置邮件头

Node.js Can';t在发送邮件后设置邮件头,node.js,express,Node.js,Express,我使用的是节点版本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)

我使用的是节点版本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);
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' });
};
<!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>
{
  "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"
  }
}
routes/index.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);
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' });
};
<!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>
{
  "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"
  }
}
视图/索引。hjs:

/**
 * 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);
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' });
};
<!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>
{
  "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"
}

用插座测试。io@0.9.16

您发布的代码似乎没有问题(我也在本地进行了测试,工作正常)。在相同版本的node.js和express下?是的,相同版本。我没有在你的代码中看到任何明显的可能导致你的问题的东西。看起来有些模块在调用索引函数之前发送了头。您是否尝试注释掉所有不必要的模块(大多数app.use调用、io部分等)以查找导致您出现问题的模块?我只尝试保留:app.set('port',process.env.port | 3000);app.set('views','u dirname+'/views');应用程序集(“查看引擎”、“hjs”);在我的app.use中。不过,当我导航到localhost:3000时,问题还是一样。。奇怪的是,现在它确实加载了CSS文件(但仍然抛出该错误)