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 模块开发及发布详解分享
Mar 07 NodeJs
NodeJS的模块写法入门(实例代码)
Mar 07 NodeJs
NodeJS url验证(url-valid)的使用方法
Nov 18 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
nodejs 实现钉钉ISV接入的加密解密方法
Jan 16 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
nodejs和C语言插入mysql数据库乱码问题的解决方法
Apr 14 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 NodeJs
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
Mar 02 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 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
PHP实现微信发红包程序
2015/08/24 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
比例尺、缩略图、平移缩放之百度地图添加控件方法
2015/08/03 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
python with statement 进行文件操作指南
2014/08/22 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python中turtle作图示例
2017/11/15 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
2019/12/18 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
经典c++面试题五
2014/12/17 面试题
董事长职责范文
2013/11/08 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
幼儿园评语大全
2014/04/17 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
新闻人物通讯稿
2014/10/09 职场文书
2015年路政工作总结
2015/05/22 职场文书
餐馆开业致辞
2015/08/01 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python