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 url验证(url-valid)的使用方法
Nov 18 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
Nodejs sublime text 3安装与配置
Jun 19 NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
详解nodejs 文本操作模块-fs模块(四)
Dec 22 NodeJs
NodeJS安装图文教程
Apr 19 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
Nodejs处理异常操作示例
Dec 25 NodeJs
nodejs+express最简易的连接数据库的方法
Dec 23 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
PHP获取当前页面URL函数实例
2014/10/22 PHP
PHP实现货币换算的方法
2014/11/29 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
通过js脚本复制网页上的一个表格的不错实现方法
2006/12/29 Javascript
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
2018/12/24 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
vue-router 控制路由权限的实现
2020/09/24 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中的with...as用法介绍
2015/05/28 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
python sys.argv[]用法实例详解
2018/05/25 Python
python监控文件并且发送告警邮件
2018/06/21 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
python读取文件名并改名字的实例
2019/01/07 Python
python Tkinter的图片刷新实例
2019/06/14 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
PyTorch-GPU加速实例
2020/06/23 Python
Python如何绘制日历图和热力图
2020/08/07 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
中国梦演讲稿3分钟
2014/08/19 职场文书
《水上飞机》教学反思
2016/02/20 职场文书