下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

web前端:Node.js Domain 模块

作者:陈莺莺呀     来源: https://www.cnblogs.com/chenyingying0/p/12485727.html点击数:909发布时间: 2020-03-26 09:33:10

标签: php服务器Node.js

Web开发

  Javascript是一个事件驱动语言,Node利用了这个优点,编写出可扩展性高的服务器。Node采用了一个称为"事件循环(eventloop)"的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。

  Node.jsDomain(域)简化异步代码的异常处理,可以捕捉处理trycatch无法捕捉的异常。

  Domain模块可分为隐式绑定和显式绑定:

  隐式绑定:把在domain上下文中定义的变量,自动绑定到domain对象

  显式绑定:把不是在domain上下文中定义的变量,以代码的方式绑定到domain对象

  vareventEmitter=require("events").EventEmitter;

  vardomain=require("domain");

  varemitter1=neweventEmitter();

  //创建域

  vardomain1=domain.create();

  domain1.on("error",function(err){

  console.log("domain1来处理这个错误:"+err.message);

  })

  //显示绑定

  domain1.add(emitter1);

  //添加emitter1对error的监听

  emitter1.on("error",function(err){

  console.log("emitter1来处理这个错误:"+err.message);

  })

  emitter1.emit("error",newError("触发错误,指定由emitter1处理"));

  emitter1.removeAllListeners("error");//移除emitter1对error的监听

  emitter1.emit("error",newError("触发错误,指定由domain1处理"));

  //创建域

  vardomain2=domain.create();

  domain2.on("error",function(err){

  console.log("domain2来处理这个错误:"+err.message);

  })

  //隐式绑定

  domain2.run(function(){

  varemitter2=neweventEmitter();

  emitter2.emit("error",newError("触发错误,指定由domain2处理"));

  })

  domain1.remove(emitter1);

  emitter1.emit("error",newError("触发错误,系统将崩溃"));

  Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型。

  Node是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为与phpPython、Perl、Ruby等服务端语言平起平坐的脚本语言。发布于2009年5月,由RyanDahl开发,实质是对ChromeV8引擎进行了封装。

赞(14)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程