Nodejs处理异常操作示例
本文实例讲述了Nodejs处理异常操作。分享给大家供大家参考,具体如下:
Exception.js
module.exports={ expfun:function(flag){ if(flag==0){ throw'我是error'; } return"success"; } }
optfile.js
//-------------optfile.js------------------------- varfs=require('fs'); module.exports={ readfile:function(path,recall){//异步执行 fs.readFile(path,function(err,data){ if(err){ console.log("异步执行error:"+err); recall("文件不存在,异步执行error:"+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{ console.log("输出文件"); res.write(filedata,'binary'); res.end(); } }); } }
router.js
varoptfile=require('../model/optfile2.js'); functiongetRecall(req,res){ res.writeHead(200,{ 'Content-Type':'text/html;charset=utf-8' }); functionrecall(data){ res.write(data); res.end('');//不写则没有http协议尾 } returnrecall; } module.exports={ login:function(req,res){ recall=getRecall(req,res); optfile.readfile('./view/login.html',recall); }, showimg:function(req,res){ res.writeHead(200,{ 'Content-Type':'image/jpeg' }); optfile.readImg("./view/pig.png",res); } }
//-------------n9_exception.js--------------- /* 同步的捕获&&异步的捕获 */ varhttp=require('http'); varurl=require('url'); varrouter=require('./model/router'); varexception=require('./model/Exception'); http.createServer(function(request,response){ if(request.url!=="/favicon.ico"){//清除第2此访问 pathname=url.parse(request.url).pathname; pathname=pathname.replace(/\//,'');//替换掉前面的/ try{ router[pathname](request,response); //data=exception.expfun(0); //response.write(data); //response.end(''); }catch(err){ console.log('捕获到异常='+err); response.writeHead(200,{ 'Content-Type':'text/html;charset=utf-8' }); response.write(err.toString()); response.end(''); } console.log("server执行完毕"); } }).listen(8000); console.log('Serverrunningathttp://127.0.0.1:8000/');
希望本文所述对大家nodejs程序设计有所帮助。