大佬教程收集整理的这篇文章主要介绍了Node.js学习之路15——Domain捕获错误,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
domain
模块获取错误使用domian模块中的create
方法创建一个domain
对象,var domain = domain.create()
,create
方法没有任何参数,该方法返回被创建的Domain
对象。该对象是一个继承了EventEmitter
类的实例对象,当该对象捕获到任何错误时,触发该对象的error
事件。可以通过监听该对象的error
事件并指定事件回调函数的方法来实现当捕捉到错误时的处理。domain.on('error',function(err){})
domain
模块中,为Domain
对象定义了一个name属性值,可以使用该属性值来设置或获取该Domain
对象的名称。
在Domain对象被创建后,需要指定该对象所监听的代码,我们需要将这些代码书写在一个函数中,并且使用Domain对象的run方法指定Domain对象监听该函数中的代码。当这些代码触发任何错误时,将被Domain
对象捕获。Domain
对象的run
方法的指定方法如下domain.run(fn)
在Domain
对象的run
方法中,使用一个参数,参数值为一个函数,当该函数中触发任何错误时,将被Domain
对象捕获。
当Domain
对象不再需要的时候,可以销毁d.dispose();
const http = require('http'); const domain = require('domain'); const process = require('process'); http.createServer(function (req,res) { var d = domain.create(); d.name = 'domainOne'; d.once('error',function (err) { res.writeHead(200,{ 'Content-Type': 'text/html' }); res.write('<head><Meta charset="utf-8"/></head>') res.write('服务器端接收客户端请求时发生以下错误:') res.end(err.messagE); }) d.run(function () { if (req.url !== '/favicon.ico') { notexitsfunction(); //this is an error res.writeHead(200,{ 'Content-Type': 'text/html' }); res.write('<head><Meta charset="utf-8"/></head>') res.end('Hello'); } process.nextTick(() => { setTimeout(() => { fs.open('./notExistFile.txt','r',(err,fd) => { if (err) { throw err; } }) }) }) }) }).listen(2576,'localhost')
以上是大佬教程为你收集整理的Node.js学习之路15——Domain捕获错误全部内容,希望文章能够帮你解决Node.js学习之路15——Domain捕获错误所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。