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程序设计有所帮助。