Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Javascript node.js可以';将头发送到客户端后,无法呈现头错误_Javascript_Node.js_Express - Fatal编程技术网

Javascript node.js可以';将头发送到客户端后,无法呈现头错误

Javascript node.js可以';将头发送到客户端后,无法呈现头错误,javascript,node.js,express,Javascript,Node.js,Express,使用node.js时,这个错误困扰着我,我想这是express出现的问题:var app=express()http.createServer(app)??有什么建议吗 Listening to port 8000 Request / from 127.0.0.1 to localhost:8000 http.js:686 throw new Error('Can\'t render headers after they are sent to the client.' ^ Err

使用node.js时,这个错误困扰着我,我想这是express出现的问题:
var app=express()
http.createServer(app)
??有什么建议吗

Listening to port 8000
Request / from 127.0.0.1 to localhost:8000

http.js:686
throw new Error('Can\'t render headers after they are sent to the client.'
      ^
Error: Can't render headers after they are sent to the client.
代码如下:

var sys = require('sys'), 
http = require('http');

var express = require('express'),
    routes = require('./routes');

var app = express();
var _self = this;


var _routes = {
    '/' : function(request, response) {
        response.writeHead(200, {'Content-Type': 'text/html'});
        response.write('hello world\n');
        response.end();
    },

    '/is_up' : function(request, response) {
        response.writeHead(200, {'Content-Type': 'text/plain'});
        response.write('ok');
        response.end();
    },
};

var _requestHandler = function(request, response) {
    console.log('Request '+request.url+' from '+request.connection.remoteAddress+' to '+request.headers.host);
    if(_routes[request.url] === undefined) {
        response.writeHead(404, {'Content-Type': 'text/plain'});
        response.write('not found\n');
        //response.end();
    } else {
        _routes[request.url].call(this, request, response);
    }
};

var _server = module.exports = http.createServer(app).
                    addListener('request', _requestHandler)
                    .listen(8000);
    console.log('Listening to port ' + "8000");

我相信问题是由于您创建服务器的方式造成的。看起来您有两个处理程序,其中一个与另一个冲突

在代码中,您将Express应用程序传递给它,而不是请求处理程序,然后使用请求处理程序添加一个侦听器

将其更改为以下内容:

var _server = http.createServer(_requestHandler); 
//_server.addListener('request', _requestHandler);
_server.listen(8000);
console.log('Listening to port ' + "8000");

\u server
变量的用途是什么?@Amberlamps:只是一个变量,考虑到以后可以用于socket.io,例如谢谢您的回复!那么我应该在哪里通过express模块?