首页 > nodejs connect中间件没有运行?大神帮解决

nodejs connect中间件没有运行?大神帮解决

帮忙看下代码,运行后,网页打开是空的,没有发出GET请求,而且控制台也没输出“中间件1”。说明中间件并没有运行。。。
代码如下:

js//模块依赖
var fs=require('fs');
var connect=require('connect');
//创建服务器
var server=connect();

//处理静态文件
server.use(connect.static(__dirname+'/website'));


//中间件
server.use(function(req,res,next){
    //记录日志
    console.error('%s %s',req.method,req.url);
    next();
});

server.use(function(req,res,next){
    console.log('中间件1');
    if(req.method=='GET'&&req.url.substr(0,7)=='/images'){
        //托管图片
        url=__dirname+req.url;
        fs.stat(url,function(err,stat){
            if(err||!stat.isFile()){
                //404
                res.writeHead(404);
                res.end('Not Found!');
                return;
            }
            serve(url,'application/jpg');
        })
    }else{
        //交给其他中间件处理
        next();
    }
});

server.use(function(req,res,next){
    console.log('中间件2');
    if(req.method=='GET'&&req.url=='/'){
        serve(__dirname+'/index.html','text/html');
    }else{
        next();
    }
});

server.use(function(req,res,next){
    //z最后一个中间件,如果到了这里,就以为着无能为力,只能返回404了
    res.writeHead(404);
    res.end('Not Found!');
});

function serve(path,type){
    res.writeHead(200,{'Content-Type':type});
    fs.createReadStream(path).pipe(res);
}

server.use(connect.logger('dev'));  
//监听
server.listen(3000);

最后需要这样处理
var http = require("http");
http.createServer(server).listen(3000)

【热门文章】
【热门文章】