Nodejs处理异常操作示例

 更新时间:2018年12月25日 09:06:46   作者:ChouCat  
这篇文章主要介绍了Nodejs处理异常操作,结合实例形式分析了nodejs针对异常的捕获与处理相关操作技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • node.js+Ajax实现获取HTTP服务器返回数据

    node.js+Ajax实现获取HTTP服务器返回数据

    这篇文章主要介绍了node.js+Ajax实现获取HTTP服务器返回数据,讲解的十分详细,也给出了很多的实例,是篇非常不错的文章,这里推荐给大家。
    2014-11-11
  • 使用nodeAPI时遇到过异步问题解决

    使用nodeAPI时遇到过异步问题解决

    这篇文章主要为大家介绍了使用nodeAPI时遇到过异步问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • NestJS实现接口的多版本管理

    NestJS实现接口的多版本管理

    在软件开发中,随着应用的迭代更新,经常需要引入新的接口版本同时保留旧版本以保证向后兼容,本教程将通过 NestJS 框架演示如何实现接口的多版本管理,感兴趣的小伙伴跟着小编一起来看看吧
    2024-06-06
  • node中Express 动态设置端口的方法

    node中Express 动态设置端口的方法

    本篇文章主要介绍了node中Express 动态设置端口的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • node.js 发布订阅模式的实例

    node.js 发布订阅模式的实例

    下面小编就为大家带来一篇node.js 发布订阅模式的实例。小编觉得挺不错的,现在就想给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • node+express+ejs使用模版引擎做的一个示例demo

    node+express+ejs使用模版引擎做的一个示例demo

    本篇文章主要介绍了node+express+ejs使用模版引擎做的一个示例demo,具有一定参考价值,有兴趣的小伙伴可以了解一下
    2017-09-09
  • 轻松创建nodejs服务器(4):路由

    轻松创建nodejs服务器(4):路由

    这篇文章主要介绍了轻松创建nodejs服务器(4):路由,服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤,需要的朋友可以参考下
    2014-12-12
  • 如何发布一个npm包到 Nexus私有仓库

    如何发布一个npm包到 Nexus私有仓库

    这篇文章主要介绍了如何发布一个npm包到 Nexus私有仓库,通过实例代码介绍了如何添加nexus权限及配置 npm 私库免登录设置的相关知识,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • node.js中的buffer.toJSON方法使用说明

    node.js中的buffer.toJSON方法使用说明

    这篇文章主要介绍了node.js中的buffer.toJSON方法使用说明,本文介绍了buffer.toJSON的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • node.js学习总结之调式代码的方法

    node.js学习总结之调式代码的方法

    调式代码很多时候类似于查案一样,只是结果的重要程度不同,警察查案为的是人民安稳,而我们调式则是为了系统的安稳。既然这样我们就不要冤枉任何一段代码和程序,以免他们受到不合理的惩罚。
    2014-06-06

最新评论