Node看起来更多的运用在前端工程化范畴,其实后端服务的运用才能实在发挥Node.js的优势。

Node.js工程化范畴的运用,最重要是衍生出一些开发东西,如webpack。用来支撑前端工程师更好的来开发前端项目,这些运用的目的是为了提升前端研制效率或许确保研制质量,并没有实在地运用到 Node.js 中心特色。

在后端服务运用才是实在地体现 Node.js 异步事件驱动的特性。

那么如何知道Node.js在这两个方面的异同呢?

从运转环境方面

  • 工程化上大都根据开发环境,运转在本地的电脑上面;
  • 后端服务运用则是运转在线上的服务器上;

对上述两个环境的Node.js:

  • 在本地的Node.js服务,我们可以方便快速地定位、剖析、处理过程中呈现的问题
  • 若是线上服务,就是需求运用一些东西来剖析判断或许监控其运转情况

那么这又有什么不同呢:

  • 需求东西将服务推送到远程机器上,触及devops 东西

  • 需求确保远程服务的安全与安稳,触及一些进程管理东西,如 PM2

  • 需求判断远程服务运转是否正常,触及远程服务的监控和告警机制

  • 遇到问题时,需求通过远程日志来定位剖析问题,这触及日志打印和跟踪

运用人群上

  • 前端工程化一般都是服务开发人员,如在本地运用 webpack 打包项目

  • 后端服务运用则服务实在用户群体,为用户提供各种前端交互方面的数据等。

因两者的功能不同:

  • 工程化侧重于为开发者提升研制效率或许研制质量。

  • 后端服务运用则关注服务的安稳与安全。

    • 根据用户发送的内容
    • 此外需求关注并发功能,须考虑服务器所能承载的用户并发数,在并发行将达到峰值时,需求有平行扩容计划。考虑用户体会,做好服务的功能优化不行少,尽可能短的接口响应时间

问题调试方面

  • 工程化在本地运转,可随意地 console.log 打印日志进行调试,不会对实在产品用户产生影响

  • 但是在后端服务运用时,需运用一些方法来进行问题调试和定位了

    • 需求在每个业务场景中,进行一些要害逻辑或许数据打印日志信息,可运用 Node.js 日志服务模块,这类日志服务不能影响功能。此外在服务端运转,可能会呈现诸如内存泄漏、句柄泄漏或许进程异常退出等问题,需求相关东西和方法来剖析定位可能会呈现的现网问题

关注点

从以上所述可知:两者的关注点不同,从而导致了两者的差异性:

  • 前端工程化的运用:着重于开发效率的提升和研制质量的确保
  • 后端服务运用:可实在发挥 Node.js 的异步驱动特性。得益于异步驱动特性,在主线程不被 CPU 密集型所影响时,可发挥出 Node.js 高并发特性,用作大部分网络 I/O 较高的后端服务

最终

以上几个方面,是我们在运用Node.js处理问题时,需求清楚知道的几个方面。