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(一)--- Node.js简介及安装开发环境
May 20 NodeJs
使用forever管理nodejs应用教程
Jun 03 NodeJs
Nodejs中session的简单使用及通过session实现身份验证的方法
Feb 04 NodeJs
详解Nodejs基于mongoose模块的增删改查的操作
Dec 21 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
nodeJS微信分享
Dec 20 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
详解微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
Apr 29 NodeJs
在NodeJs中使用node-schedule增加定时器任务的方法
Jun 08 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
DOMXML函数笔记
2006/10/09 PHP
桌面中心(二)数据库写入
2006/10/09 PHP
解析php中获取系统信息的方法
2013/06/25 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
jQuery学习之prop和attr的区别示例介绍
2013/11/15 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
详解Python中的循环语句的用法
2015/04/09 Python
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
python判断完全平方数的方法
2018/11/13 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
天网面试题
2013/04/07 面试题
北大青鸟学生求职信
2013/09/24 职场文书
经典的班主任推荐信
2013/10/28 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
语文教学感言
2014/02/06 职场文书
淘宝活动策划方案
2014/02/06 职场文书
园艺师求职信
2014/03/10 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
团队精神的演讲稿
2014/05/14 职场文书
2019思想汇报范文
2019/05/21 职场文书
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android