理解 Node.js:利用JavaScript 进行服务端编程的利器


思考,输出,沉淀。用通俗的语言陈述技术,让自己和他人都有所收获。

作者:毅航😜


众所周知,Node.js是一款基于Chrome V8 JavaScript引擎的开源的跨平台JavaScript运行时环境,它让前端开发者可以用JavaScript来编写服务器端代码,并处理后端逻辑。但作为前端日常开发的必备工具,不知你是否思考过Node.js到底是什么呢?其究竟是类似后端maven包管理工具,还是前端的可替代Java的服务端编程利器?

前言

为了能更加透彻的理理解Node.js,我们不妨来看一段维基百科对于Node.js的描述:

Node.js可通过JavaScript和一系列模块来编写服务器端应用和网络相关的应用。其核心模块包括文件系统I/O、网络(HTTPTCPUDPDNSTLS/SSL等)、二进制数据流、加密算法、数据流等等。Node.js模块的API形式简单,降低了服务端编程的复杂度。

通过维基百科这段描述我们不难看出,对于Node.js而言,其核心其实可以概括为JavaScript服务端两个关键字。作为前端开发工程师,JavaScript自不必过多解释,那么只要能回答清楚什么服务端其实也就回答了Node.js是什么的问题。

B/S架构

那究竟是什么服务端呢?在平时的开发中,后台到底会做那些事呢 ?要想理解这个问题,我们便首先需要对经典的B/S架构进行介绍。事实上,所谓的B/S架构,即浏览器/服务器架构(Browser/Server),其是一种网络应用程序的结构模式,主要由客户端的浏览器和服务器端的应用程序组成 。具体来看浏览器端、服务器端分工如下:

  1. 浏览器端(客户端)

    • 浏览器 :用户使用浏览器(如Chrome、Firefox、Safari)访问和操作Web应用。浏览器通过HTTP/HTTPS协议与服务器进行通信。而浏览器端的页面通常由HTML、CSSJavaScript组成。其中,HTML定义页面结构,CSS用于样式设计,JavaScript实现页面动态交互和数据处理。
  2. 服务器端

    • Web服务器 :如Apache、Nginx,负责处理浏览器发来的请求,分发请求到相应的应用程序。
    • 应用服务器 :运行Web应用程序逻辑,处理业务操作和数据计算,如Tomcat、Node.js等。
    • 数据库服务器 :存储和管理应用程序的数据,如MySQL、PostgreSQL、MongoDB等。应用服务器通过数据库查询和存储数据。

理解Node.js

B/S架构有了基础理解后,我们再来深入探究客户端服务端的交互,从而来加深对于服务端后台的理解。

我们知道,客户端服务端的交互通常通过一个Http请求来完成。更通俗的来看就是通过类似Api/server/xxx类似的路径来完成前后端的通信。那路径Api/server/xxx是提供的呢?答案显而易见,肯定是后台程序对专门为前端开发者暴露出来的请求路径。

事实上,对于服务端其主要会提供两种类型的服务。一种是静态资源服务;另一种则是接口服务。 而所谓的静态资源服务,你可以简单理解为文件服务,而接口服务就是我们平时前后端联调时后端暴露给我们的地址信息。

如果你对Http有一定了解的话,其实你应该知道对于后端提供类似的httP://Api/server/xxx地址,其实是一个资源地址(URL) 。而我们请求资源地址的目的也在于获取资源 。当你理清楚这点后,相信你对后台服务端端会有了一个全新的认识。

那么服务端是什么呢?其实你完全将其理解为一个对外暴露资源地址,并返回资源的工具。

明白了这点后,我们再来看后台url的处理。首先,后台相关服务会侦听一个端口,而当一个端口被侦听后,其就可以接受请求该端口的Http请求,当请求到来后其便可以读取请求中的请求头、请求体信息,当拿到请求中的url信息后,其会做一个判断并执行相关的逻辑。比如,现在前端发送了一个api/users的请求以期待获取到全部的用户信息,当后台收到这一请求后,其会路由到对应的Controller处理器来对请求进行处理,并返回相应的资源,这便是服务端所做的事情。

其实完全可以这样理解 如果一个软件可以解析Http请求,并能返回资源信息其就可以进行服务端的编程操作,众所周知,Node.js其实是一个运行操作系统上的命令式交互软件,其不仅可以很好的对Http协议进行接收处理,同时还能完成操纵数据库、文件读写等一系列操作

回到今天的话题,Node.js是什么呢?其是一款由JavaScript编写的用于支持服务器端编程的工具。

总结

本文首先对Node.js进行了简单的介绍,归纳总结出Node.js的两个核心关键词:JavaScript服务端,并对其进行了分析阐述,当然这写并不是Node.js的全部,其仅是对Node.js一种简单理解,只是一种从后端视角下对Node.js的解读~~~~

相关推荐
也无晴也无风雨32 分钟前
深入剖析输入URL按下回车,浏览器做了什么
前端·后端·计算机网络
Martin -Tang1 小时前
Vue 3 中,ref 和 reactive的区别
前端·javascript·vue.js
FakeOccupational3 小时前
nodejs 020: React语法规则 props和state
前端·javascript·react.js
放逐者-保持本心,方可放逐3 小时前
react 组件应用
开发语言·前端·javascript·react.js·前端框架
曹天骄4 小时前
next中服务端组件共享接口数据
前端·javascript·react.js
2401_857610034 小时前
多维视角下的知识管理:Spring Boot应用
java·spring boot·后端
阮少年、4 小时前
java后台生成模拟聊天截图并返回给前端
java·开发语言·前端
代码小鑫4 小时前
A027-基于Spring Boot的农事管理系统
java·开发语言·数据库·spring boot·后端·毕业设计
颜淡慕潇5 小时前
【K8S问题系列 | 9】如何监控集群CPU使用率并设置告警?
后端·云原生·容器·kubernetes·问题解决
郝晨妤5 小时前
鸿蒙ArkTS和TS有什么区别?
前端·javascript·typescript·鸿蒙