nodejs开发
2014-05-12 00:11
246 查看
#如何提高nodejs程序的稳定性,健壮性
保持良好的代码结构:
我们知道node是单线程,非阻塞io,默认就是异步,通过回调的方式处理后面的流程,如果嵌套的层次太多了,
势必会引起代码逻辑结构的混乱,也不利于维护和升级,可以采用async这个异步流程控制模块,来理清我们的代码逻辑。
使用 process.on('uncaughtException', function(err){...}); 来处理未被捕捉的错误。
使用try~catch 来捕获异常:
这个只能解决一部分问题,不是万能的,在上面说到因为node是单线程,非阻塞io,默认就是异步,
通过回调的方式处理后面的流程,try~catch 是不能捕获的callback 里面的error的错误的,怎么捕获到callback里面的错误呢 ? 可以采用domain模块
使用domain模块来处理程序的异常
先看看对domain的解释:domain是 EventEmitter类的一个子类。监听它的error事件来处理它捕捉到的错误。
它提供了一种方式,即以一个单一的组的形式来处理多个不同的IO操作。如果任何一个注册到domain的事件触发器或回调触发
了一个‘error’事件,或者抛出一个错误,那么domain对象将会被通知到。而不是直接让这个错误的上下文
从`process.on('uncaughtException')'处理程序中丢失掉,也不会致使程序因为这个错误伴随着错误码立即退出。
#加快
保持良好的代码结构:
我们知道node是单线程,非阻塞io,默认就是异步,通过回调的方式处理后面的流程,如果嵌套的层次太多了,
势必会引起代码逻辑结构的混乱,也不利于维护和升级,可以采用async这个异步流程控制模块,来理清我们的代码逻辑。
使用 process.on('uncaughtException', function(err){...}); 来处理未被捕捉的错误。
使用try~catch 来捕获异常:
这个只能解决一部分问题,不是万能的,在上面说到因为node是单线程,非阻塞io,默认就是异步,
通过回调的方式处理后面的流程,try~catch 是不能捕获的callback 里面的error的错误的,怎么捕获到callback里面的错误呢 ? 可以采用domain模块
使用domain模块来处理程序的异常
先看看对domain的解释:domain是 EventEmitter类的一个子类。监听它的error事件来处理它捕捉到的错误。
它提供了一种方式,即以一个单一的组的形式来处理多个不同的IO操作。如果任何一个注册到domain的事件触发器或回调触发
了一个‘error’事件,或者抛出一个错误,那么domain对象将会被通知到。而不是直接让这个错误的上下文
从`process.on('uncaughtException')'处理程序中丢失掉,也不会致使程序因为这个错误伴随着错误码立即退出。
#加快
npm install速度
npm config set strict-ssl false npm config set registry "http://r.cnpmjs.org/"
相关文章推荐
- Meteor——以NodeJS为基础环境,MongoDB为数据环境的全栈开发平台!
- nodejs开发——mongodb数据库与express框架结合
- NodeJS开发的十大令人神奇的项目
- nodejs开发游戏服务器遇到的性能问题
- NodeJS开发环境配置
- Ubuntu中搭建Nodejs开发环境过程分享
- NodeJS学习之快速搭建开发环境
- 想询问一个职业规划的问题,前端开发 or nodejs?
- nodejs开发调试时,使用supervisor
- 学习老外用webstorm开发nodejs的技巧--代码提示DefinitelyTyped
- Nodejs开发框架Express3.0开发手记–从零开始
- 阿里云通信(原阿里大于)短信验证nodejs开发遇到的坑
- 详解NodeJs开发微信公众号
- nodejs、angular4、Ionic,window开发环境安装
- nodejs服务器端开发指koa2的使用
- nodejs开发中如何调试基于多进程的程序
- 在eclipse中开发nodejs(nodejs插件以及安装方法)
- Nodejs开发指南-笔记
- Linux下躺着搭建nodejs开发环境的正确姿势