本文共 1378 字,大约阅读时间需要 4 分钟。
readfile.js文件操作代码:
var fs=require('fs'); module.exports={ readfileAsync:function(path,recall){ fs.readFile(path,function(err,data){ if(err){ console.log(err); }else{ console.log(data.toString()); recall(data); } }); console.log('异步读取已完成'); }, readImg:function(path,res){ fs.readFile(path,'binary',function(err,filedata){ if(err){ console.log(err); return; }else{ res.write(filedata,'binary'); res.end(); } }); } } router.js路由代码: var readfile=require('./readfile');function getRecall(req,res){
res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'}); function recall(data){//创建一个闭包回调函数 res.write(data); res.end('ok');//操作完异步读取后,执行函数再关闭主程序 } return recall; }module.exports={
login:function(req,res){ recall=getRecall(req,res); readfile.readfileAsync('./login.html',recall);//异步读取文件 }, register:function(req,res){ recall=getRecall(req,res); readfile.readfileAsync('./register.html',recall);//异步读取文件 }, showimg:function(req,res){ res.writeHead(200,{'Content-Type':'image/jpeg'}); readfile.readImg('./2.jpg',res); } } routeMain.js注册时入口代码: var http = require('http'); var url=require('url'); var router=require('./router');//调用只有一个函数的js文件http.createServer(function (request,response){
if(request.url!="/favicon.ico"){ //清楚第二次访问
var pathname=url.parse(request.url).pathname; pathname=pathname.replace(/\//,'');//正则去掉前面的斜杠 router[pathname](request,response);}
}).listen(8001);转载地址:http://lzkmf.baihongyu.com/