Node.js 特点

特点包括以下几个方面:

  • 部署简单方便
  • 事件驱动
  • 异步编程
  • 高校与性能
  • 单线程与多线程
  • Node.js缺点

    部署简单方便:

  • 环境配置简单,只需要安装Node.js即可

  • 注重约定
  • 项目所需要扩展、插件、资源相对独立,不易冲突

事件驱动:根据当前出现的时间,调动资源进行相关的处理。

异步编程:大多数是同步编程,即在一个单元之内代码是从上到下依次执行,上句没有执行完,下一句就不会执行。异步大不相同,当有I/O发生时,无需等待,去执行下一个操作,当I/O完成时用事件来完成。
方式:

  • 回调函数
  • 事件监听:会使流程变复杂
  • 订阅/发布

    高效与性能

  • 单个操作的性能并不由于其它的解决方案

  • 通过优化资源调配和I/O操作来实现高效
    其他语言对于IO的处理:

  • PHP:原地等待,可多进程:浪费更多系统资源

  • C++:多进程,开发成本较高

    单线程与多进程:
    Google V8 是单线程的,所以Node.js与同样是单进程的。为了更好地利用CPU资源,可以利用进程和多线程:

  • 子进程:Node.js的child_process模块

  • 多进程:PM2等第三方工具

缺点

  • 大量使用匿名函数,使得抛出的异常不易阅读
  • try/catch限于同步代码,使得异常捕获较为复杂
  • 单线程:可靠性
  • 不适合于CPU密集型场景,eg:视频处理和计算
  • 回调代码的阅读问题,影响阅读(基本上是没有根治的方法)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值