web前端:Node.js Domain 模块

    作者:陈莺莺呀更新于: 2020-03-25 21:59:23

    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引擎进行了封装。

课课家教育

未登录

1