为什么要使用 Node.js?这几点你必须知道!

无毁的湖光-A 2020-10-26 13:08:46 ⋅ 153 阅读
经过这几年的发展,前端普遍进入了技术深水区,只会Web页面开发已经难以满足企业的需求,Node逐渐成为了刚性技能。
但Node在业务上的使用还没有那么普及,有的时候想用老板还不同意,本文将从4个角度解析“为什么要使用Node”。
01
业务驱动

Node有个突出的优势,他的开发者可以是前端。前端对于页面需要懂的数据有更好的理解,每个页面要用到哪些接口,每个接口要用到哪些字段前端是最清楚的。

再加上实际业务开发中,前端页面需求经常会发生变化,需要修改字段或者数据结构,所以对接页面的这部分接口由前端直接开发非常合适,可以显著的减少沟通成本

02

架构需要
面向用户的接口由Node中间层负责以后,真正的服务端可以专注于提供基于领域模型的对内接口,做微服务。比如可以基于Goods模型,提供所有商品相关的接口,基于Users模型,提供所有用户相关。
当一个接口需要商品+用户信息时,由Node分别查询组装,从整体业务代码维护角度来说,变得更容易,不会因为业务发展使得每个接口都异常繁杂

03

性能满足

如果仅仅是架构层面的需求,需要有一个中间层来沉淀业务,那用Java,PHP也可以做到,为什么说Node更适合做呢?

因为Node天生异步!

众所周知,js是一门单线程语言,所以Node在实现的时候,需要借助libuv来实现异步。

如图所示,libuv为Node提供了线程池,事件池,异步I/O等能力。正是因为其中网络I/O的异步能力,可以让Node做接口聚合时,能够更高效的异步并发处理。

04

学习成本较低

Node使用js开发,只需要学习简单的api,前端开发者就可以无障碍使用,学习成本很低。

 

而且,Node具有活跃的社区和丰富的模块池,拥有很多现成的功能实现。在框架方面,也有成熟的koa,express等基本框架和egg等二次封装框架,可根据需求选择,上手也比较方便。


全部评论: 0

    我有话说:

    想更好的理解Node.js中的Buffer吗?看一下个。

    不论是否是科班出身,认真读完,想必会给带去一些收获.

    为什么很多大公司选择使用 Node.js 做 Web 后端?

      大佬们问一下,为什么大的公司Node.js 做web后端?并且Node调用Java做数据落地?在网上看了一些帖子,发现很多大厂都是这样做,我们公司的项目也是这样的,但是在开发

    Node 模块之 util URL queryString path(八)

    第一部分 util util是一个Node.js核心模块,util模块设计的主要目的是为了满足Node内部API的需求。其中包括:格式化字符串、对象的序列化、实现对象继承等常用方法。使用util

    小程序开源框架汇总,知道个?

    开发出一套高质量的小程序,运用框架?看过来

    2018年8个技巧来构建更好的Node.js应用程序

    2018年8个技巧来构建更好的Node.js应用程序

    NodeJS 10.5.0 中的线程:实用介绍

    天前,Node.js版本10.5.0发布,其中包含的主要功能之一是添加了线程支持。

    Nodejs 接入 公众号【逗比版】

    Nodejs 接入 公众号 需求:Boss: 我们接入公众号,看下文档对接下。Me: 🆗 然后,可能因为对腾讯的反感,加之网上对腾讯的吐槽,怀着愤世嫉俗的态度胡乱的找资源,看方案

    Node实战篇:Express路由(三)

    Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助创建各种 Web 和移动设备应用。

    Node.js 实战篇--微信支付系列(一)

    真正的无知不是知识的贫乏, 而是拒绝获取知识!——波普尔 (哲学家 思想家)鉴于微信支付文档内容详实

    Node.js v15.13.0 发布

    Node.js 15.13.0 正式发布。Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 

    Node.js 16.0.0 发布

    Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境。Node.jsNode.js

    Node实战篇:使用joi来验证数据模型 (十)

    Joi 是 hapijs 自带的数据校验模块,他已经高度封装常用的校验功能,本文就是介绍如何优雅地使用 joi 对数据进行校验......

    Node模块之fs模块(六)

    屏幕快照 2017-08-08 上午10.53.21.png 第一部分 概述 Node.js 提供一组类似UNIX(POSIX)标准的文件操作API,Node.js中操作文件的模块是fs(File

    可能不知道的CRUD

      本系列旨在系统学习提升Mysql技能,更完整内容可以参考阿里新零售数据库设计与实战 DB引擎 可能不知道的CRUD INSERT 情况一 Duplicate key 当批量更新,如果

    JavaScript作业队列和微任务

    关键是知道作业队列(也称为微任务队列)如何在Ja...

    为什么说作为程序员分库分表的必要性一定掌握?

      互联网大厂程序员必须掌握海量数据和高并发问题处理技能,期望进入大厂的程序员一定仔细看篇! MySQL 分库分表是做什么的? 相信很多程序员对 MySQL 都比较熟悉了,目前国内

    Node.js 15.6.0 发布

    Node.js 15.6.0 发布,Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时。 此版本主要更新内容包括: child_process: 添加

    Node实战篇:Express 中间件-body-parser(五)

    body-parser是什么?body-parser是一个HTTP请求体解析中间件,使用这个模块可以解析JS

    Node异步式I/O和异步式编程(三)

     Node.js 最大的特点就是异步式 I/O(或者非阻塞I/O)与事件紧密结合的编程模式。 第一部分: I/O 1.阻塞I/O与非阻塞I/O概念 1.1阻塞I/O(同步I/O) 线程在