最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nodejs處理異常操作示例

 更新時(shí)間:2018年12月25日 09:06:46   作者:ChouCat  
這篇文章主要介紹了Nodejs處理異常操作,結(jié)合實(shí)例形式分析了nodejs針對(duì)異常的捕獲與處理相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了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) { //異步執(zhí)行
    fs.readFile(path, function (err, data) {
      if (err) {
        console.log("異步執(zhí)行error:" + err);
        recall("文件不存在,異步執(zhí)行error:" + err);//異步處理異常
      } else {
        //console.log(data.toString());
        recall(data);
      }
    });
    console.log("===異步方法執(zhí)行完畢===");
  },
  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協(xié)議尾
  }
  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執(zhí)行完畢");
  }
}).listen(8000);
console.log('Server running at http://127.0.0.1:8000/');

希望本文所述對(duì)大家nodejs程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • node.js+Ajax實(shí)現(xiàn)獲取HTTP服務(wù)器返回?cái)?shù)據(jù)

    node.js+Ajax實(shí)現(xiàn)獲取HTTP服務(wù)器返回?cái)?shù)據(jù)

    這篇文章主要介紹了node.js+Ajax實(shí)現(xiàn)獲取HTTP服務(wù)器返回?cái)?shù)據(jù),講解的十分詳細(xì),也給出了很多的實(shí)例,是篇非常不錯(cuò)的文章,這里推薦給大家。
    2014-11-11
  • 使用nodeAPI時(shí)遇到過異步問題解決

    使用nodeAPI時(shí)遇到過異步問題解決

    這篇文章主要為大家介紹了使用nodeAPI時(shí)遇到過異步問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • NestJS實(shí)現(xiàn)接口的多版本管理

    NestJS實(shí)現(xiàn)接口的多版本管理

    在軟件開發(fā)中,隨著應(yīng)用的迭代更新,經(jīng)常需要引入新的接口版本同時(shí)保留舊版本以保證向后兼容,本教程將通過 NestJS 框架演示如何實(shí)現(xiàn)接口的多版本管理,感興趣的小伙伴跟著小編一起來看看吧
    2024-06-06
  • node中Express 動(dòng)態(tài)設(shè)置端口的方法

    node中Express 動(dòng)態(tài)設(shè)置端口的方法

    本篇文章主要介紹了node中Express 動(dòng)態(tài)設(shè)置端口的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • node.js 發(fā)布訂閱模式的實(shí)例

    node.js 發(fā)布訂閱模式的實(shí)例

    下面小編就為大家?guī)硪黄猲ode.js 發(fā)布訂閱模式的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就想給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • node+express+ejs使用模版引擎做的一個(gè)示例demo

    node+express+ejs使用模版引擎做的一個(gè)示例demo

    本篇文章主要介紹了node+express+ejs使用模版引擎做的一個(gè)示例demo,具有一定參考價(jià)值,有興趣的小伙伴可以了解一下
    2017-09-09
  • 輕松創(chuàng)建nodejs服務(wù)器(4):路由

    輕松創(chuàng)建nodejs服務(wù)器(4):路由

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務(wù)器(4):路由,服務(wù)器需要根據(jù)不同的URL或請(qǐng)求來執(zhí)行不一樣的操作,我們可以通過路由來實(shí)現(xiàn)這個(gè)步驟,需要的朋友可以參考下
    2014-12-12
  • 如何發(fā)布一個(gè)npm包到?Nexus私有倉庫

    如何發(fā)布一個(gè)npm包到?Nexus私有倉庫

    這篇文章主要介紹了如何發(fā)布一個(gè)npm包到?Nexus私有倉庫,通過實(shí)例代碼介紹了如何添加nexus權(quán)限及配置?npm?私庫免登錄設(shè)置的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • node.js中的buffer.toJSON方法使用說明

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

    這篇文章主要介紹了node.js中的buffer.toJSON方法使用說明,本文介紹了buffer.toJSON的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • node.js學(xué)習(xí)總結(jié)之調(diào)式代碼的方法

    node.js學(xué)習(xí)總結(jié)之調(diào)式代碼的方法

    調(diào)式代碼很多時(shí)候類似于查案一樣,只是結(jié)果的重要程度不同,警察查案為的是人民安穩(wěn),而我們調(diào)式則是為了系統(tǒng)的安穩(wěn)。既然這樣我們就不要冤枉任何一段代碼和程序,以免他們受到不合理的懲罰。
    2014-06-06

最新評(píng)論

凤山市| 金华市| 改则县| 柘城县| 乌鲁木齐市| 黄浦区| 阳春市| 富平县| 侯马市| 奈曼旗| 阜宁县| 绍兴市| 延寿县| 遂川县| 益阳市| 竹山县| 新化县| 上林县| 龙门县| 合山市| 远安县| 杨浦区| 于田县| 乐亭县| 宁海县| 扬中市| 吐鲁番市| 辉南县| 河间市| 五寨县| 奎屯市| 广汉市| 砀山县| 青海省| 邛崃市| 高平市| 当阳市| 台中市| 綦江县| 怀柔区| 绍兴市|