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获取本机内网和外网ip地址的实现代码
Jun 01 NodeJs
抛弃Nginx使用nodejs做反向代理服务器
Jul 17 NodeJs
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
Aug 03 NodeJs
基于NodeJS的前后端分离的思考与实践(二)模版探索
Sep 26 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
轻松创建nodejs服务器(10):处理POST请求
Dec 18 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 NodeJs
nodejs个人博客开发第一步 准备工作
Apr 12 NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 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中替换键名的简易方法示例详解
2014/01/07 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
jquery中的$(document).ready()与window.onload的区别
2009/11/18 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
js事件机制----捕获与冒泡机制实例分析
2020/05/22 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
python爬虫中多线程的使用详解
2019/09/23 Python
keras.utils.to_categorical和one hot格式解析
2020/07/02 Python
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
会计电算化专业毕业生自荐信
2013/12/20 职场文书
大型活动策划方案
2014/01/12 职场文书
学习演讲稿范文
2014/05/10 职场文书
司法建议书范文
2014/05/13 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
2015年推普周活动方案
2015/05/06 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers
JavaScript原型链详解
2021/11/07 Javascript
golang为什么要统一错误处理
2022/04/03 Golang