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 相关文章推荐
使用forever管理nodejs应用教程
Jun 03 NodeJs
基于NodeJS的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
Nodejs中的this详解
Mar 26 NodeJs
用NodeJS实现批量查询地理位置的经纬度接口
Aug 16 NodeJs
进阶之初探nodeJS
Jan 24 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 NodeJs
Nodejs--post的公式详解
Apr 29 NodeJs
nodejs制作爬虫实现批量下载图片
May 19 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 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用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
js的2种继承方式详解
2014/03/04 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
Vue.js自定义事件的表单输入组件方法
2018/03/08 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
Django框架验证码用法实例分析
2019/05/10 Python
python 使用shutil复制图片的例子
2019/12/13 Python
python编程的核心知识点总结
2021/02/08 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
铭立家具面试题
2012/12/06 面试题
英语翻译系毕业生求职信
2013/09/29 职场文书
打架检讨书500字
2014/01/29 职场文书
《商鞅南门立木》教学反思
2014/02/16 职场文书
餐饮投资计划书
2014/04/25 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
乱世佳人观后感
2015/06/08 职场文书
企业文化学习心得体会
2016/01/21 职场文书