Nodejs处理异常操作示例


Posted in NodeJs onDecember 25, 2018

本文实例讲述了Nodejs处理异常操作。分享给大家供大家参考,具体如下:

Exception.js

module.exports = {
  expfun: function(flag) {
    if(flag == 0) {
      throw '我是error';
    }
    return "success";
  }
}

optfile.js

//-------------optfile.js-------------------------
var fs = 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

var optfile = require('../model/optfile2.js');
function getRecall(req, res) {
  res.writeHead(200, {
    'Content-Type': 'text/html; charset=utf-8'
  });
  function recall(data) {
    res.write(data);
    res.end(''); //不写则没有http协议尾
  }
  return recall;
}
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---------------
/*
同步的捕获&&异步的捕获
*/
var http = require('http');
var url = require('url');
var router = require('./model/router');
var exception = 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('Server running at http://127.0.0.1:8000/');

希望本文所述对大家nodejs程序设计有所帮助。

NodeJs 相关文章推荐
nodejs导出excel的方法
Jun 30 NodeJs
NodeJS创建基础应用并应用模板引擎
Apr 12 NodeJs
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
Nov 21 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
理解nodejs的stream和pipe机制的原理和实现
Aug 12 NodeJs
nodejs中密码加密处理操作详解
Mar 20 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 NodeJs
Nodejs 识别图片类型的方法
Aug 15 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
nodeJS与MySQL实现分页数据以及倒序数据
Jun 05 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 #NodeJs
nodejs中方法和模块用法示例
Dec 24 #NodeJs
Nodejs中获取当前函数被调用的行数及文件名详解
Dec 12 #NodeJs
nodejs图片处理工具gm用法小结
Dec 12 #NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 #NodeJs
NodeJs实现简单的爬虫功能案例分析
Dec 05 #NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 #NodeJs
You might like
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
PHP将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
2013/06/20 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
PHP微信分享开发详解
2017/01/14 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
jQuery timers计时器简单应用说明
2010/10/28 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
jQuery滚动新闻实现代码
2016/06/26 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
工程技术员岗位职责
2014/03/02 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
学生党员一帮一活动总结
2014/07/08 职场文书
2015年党员承诺书
2015/01/21 职场文书
教师节联欢会主持词
2015/07/04 职场文书
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android