var http = require('http');
var url = require('url');
var router = require('./router');http.createServer(function(request, response){if(request.url!=='/favicon.ico'){ // 防止第二次重复访问//response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});var pathname = url.parse(request.url).pathname;pathname = pathname.replace(/\//,'');// 替换掉前面的 /console.log(pathname);try{router[pathname](request,response);}catch(err){console.log('错误为:'+err);response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});response.write(err.toString());response.end('');}console.log('server 执行完毕。');}
}).listen(8000);
console.log('Server is running in port 8000');
var readhtml = require('./readhtml');function getRecall(req,res){res.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});function recall(data){res.write(data)res.end('');}return recall;
}
module.exports={login:function(req,res){recall = getRecall(req,res);readhtml.login('./html/login.html',recall);// 不存在文件login111.htmlconsole.log("login====");},showImg:function(req,res){res.writeHead(200,{'Contet-Type':'image/jpeg'});readhtml.showimg('./img/1.jpg',res);console.log("login====");}
}
var fs = require('fs');module.exports = {login:function(path,recall){fs.readFile(path,function(err,data){if(err){console.log(err)recall('文件不存在。') // 返回异常信息}else{recall(data);}    });},showimg:function(path,res){fs.readFile(path,'binary',function(err,filedata){if(err){console.log(err);return;}else{res.write(filedata,'binary');res.end('');}});}}

同步代码用try catch;异步代码直接在异步捕获的异常中返回如下图,当login.html不存在的时候

抛出异常

var http = require('http');
var url = require('url');
var router = require('./router');var exp = require('./exp');http.createServer(function(request, response){if(request.url!=='/favicon.ico'){ // 防止第二次重复访问//response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});var pathname = url.parse(request.url).pathname;pathname = pathname.replace(/\//,'');// 替换掉前面的 /console.log(pathname);try{//router[pathname](request,response);var str = exp.exp(0);response.write(str);response.end('');}catch(err){console.log('错误为:'+err);response.writeHead(200,{'Contet-Type':'text/html;charset=utf-8'});response.write(err.toString());response.end('');}console.log('server 执行完毕。');}
}).listen(8000);
console.log('Server is running in port 8000');
module.exports ={exp:function(data){if(data==0){throw '我是异常信息';}return '成功';}
}

nodejs 异常的处理相关推荐

  1. nodejs异常处理过程/获取nodejs异常类型/写一个eggjs异常处理中间件

    前言 今天想写一下eggjs的自定义异常处理中间件,在写的时候遇到了问题,这个错误我捕获不到类型?? 处理过程,不喜欢看过程的朋友请直接看解决方法和总结 看一下是什么: 抛出的异常是检验失败异常Val ...

  2. nodejs 异常捕获

    由于nodejs是非阻塞单进程单线程的,一旦nodejs抛出异常,整个服务就会停掉.服务将会非常不稳定. 错误异常有两种场景的出现,一种是代码运行中throw new error没有被捕获,另一种是P ...

  3. NODEJS项目实践0.4 [domain,pm2,log4js,md5]

    一.前言 ⋅⋅⋅上节我们基于mongo数据存取的操作,实现了用户注册.登录.退出功能,并应用了初级的权限验证.本节将处理nodejs异常情况.加密.日志及进程守护. git : https://git ...

  4. nodejs中处理回调函数的异常

    假设是使用nodejs+express3这个经典的组合.那么有一种非常方面的处理回调函数异常的方法: 1. 安装模块:express-domain-middleware 2. 增加例如以下的代码: a ...

  5. nodejs进程异常退出处理方法

    nodejs进程异常退出处理方法 参考文章: (1)nodejs进程异常退出处理方法 (2)https://www.cnblogs.com/mengff/p/10207154.html (3)http ...

  6. nodejs下babel编译es6后异常定位助手:source-map-support

    为什么80%的码农都做不了架构师?>>>    使用es6甚至es7写代码是愉快的,然而由于兼容性原因,我们不得不使用babel把es6代码转成es5的,但这样会有一个问题,那就是出 ...

  7. nodejs mysql 异步_Gearman + Nodejs + MySQL UDF异步实现 MySQL 到 Redis 的数据同步

    1, 环境 CentOS, MySQL, Redis, Nodejs Redis是一个开源的K-V内存数据库,它的key可以是string/set/hash/list/...,因为是基于内存的,所在访 ...

  8. 七天学会NodeJS

    2019独角兽企业重金招聘Python工程师标准>>> NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充 ...

  9. 教你在Nodejs中如何获取当前函数被调用的行数及文件名

    苏格团队 作者:MaxPan 交流QQ群:855833773 背景 在自定义Egg.js的请求级别日志这篇文章中,我们实现了自定义请求级别的日志模块.看上去功能是完整了,但好像还缺点什么. 大家在根据 ...

  10. NodeJS + PhantomJS 前端自动化资源监控

    前言:最近做前端资源监控,看了很多例子,没有达到想要的效果.首先的槽点是PhantomJS的官方文档,真鸡肋,其次是网上的例子,多数是介绍PhantomJS的用法,而并没有介绍怎么完整的去实现,跟官方 ...

最新文章

  1. 网站被黑搜索快照被劫持怎么办
  2. 使用curl获取Location:重定向后url
  3. 干!一张图整理了 Python 所有内置异常
  4. Hadoop HDFS (3) JAVA訪问HDFS之二 文件分布式读写策略
  5. 故障诊断 | 存储Cache丢失导致数据库无法open的案例分享
  6. PostgreSQL 12系统表(2)pg_tables
  7. java基础回顾---static关键字
  8. 03-Axure9默认元件库
  9. 蓝桥杯官网练习系统基础练习(一)
  10. 视频教程-GO语言打造区块链视频教程-区块链
  11. 计算机主机配件及图解,电脑主机配件组成解析图文
  12. python爬虫英文单词_非常适合新手的一个Python爬虫项目:打造一个英文词汇量测试脚本...
  13. 220927工作日志
  14. 李某人的第一篇blog
  15. Android图片加载优化方案
  16. 从RTP包中分析OPUS码流
  17. 数字滚动(微信小程序)
  18. 关于自建ip池可能出现的问题
  19. 内存对齐是什么?为什么要内存对齐?
  20. 指纹识别实战——基于TensorFlow实现(文末送书)

热门文章

  1. 雅思备考-口语词组积累-第二章
  2. 初识C++(二)内联函数、atuo、以及范围for的使用
  3. Win10smb2.0共享至android速度慢问题解决
  4. linux libodbc.so.1,关于C#:Testprintenv:加载共享库时出错:libodbc.so.1:无法打开共享对象文件...
  5. python怎么循环播放_如何用pyaudio循环播放音频?
  6. python 报错 IndentationError: unexpected unindent
  7. 计算机的符号名称大全集,特殊符号大全
  8. [原创]分布光纤测温DTS产品在市场上两种主流产品架构的区别与对比-未来趋势必然向单板化方向发展
  9. N元语言模型的训练方法
  10. 标题:《东邪西毒》台词全本(国语版) (转)