帮忙看下代码,运行后,网页打开是空的,没有发出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)