微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node高级话题(异步,部署,性能调优,异常调试等)

node中的异步和同步怎么理解

@H_404_2@node是单线程的,异步是通过一次次的循环事件队列来实现的.同步则是说阻塞式的IO,这在高并发环境会是一个很大的性能问题,所以同步一般只在基础框架的启动时使用,用来加载配置文件,初始化程序什么的.

有哪些方法可以进行异步流程的控制?

  • 多层嵌套回调
  • 为每一个回调写单独的函数函数里边再回调
  • 用第三方框架比方async, q, promise等

怎样绑定node程序到80端口?

@H_404_2@多种方式:

  • sudo
  • apache/Nginx代理
  • 用操作系统的firewall iptables进行端口重定向

有哪些方法可以让node程序遇到错误自动重启?

  • runit 
  • forever 
  •  nohup npm start &

怎样充分利用多个cpu?

怎样调节node执行单元的内存大小?

@H_404_2@用--max-old-space-size 和 --max-new-space-size 来设置 v8 使用内存的上限

程序总是崩溃,怎样找出问题在哪里?

  • node --prof 查看哪些函数调用次数
  • memwatch和heapdump获得内存快照进行对比,查找内存溢出

有哪些常用方法可以防止程序崩溃?

  • try-catch-finally
  • EventEmitter/Stream error事件处理
  • domain统一控制 
  •  jshint静态检查
  • jasmine/mocha进行单元测试

怎样调试node程序?

  • node --debug app.js 和node-inspector

如何捕获NodeJS中的错误,有几种方法

  • 监听错误事件req.on('error', function(){}), 适用EventEmitter存在的情况; 
  • Promise.then.catch(error),适用Promise存在的情况 
  • try-catch,适用async-await和js运行时异常,比如undefined object

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐