理解 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的解读~~~~

相关推荐
952362 分钟前
SpringBoot统一功能处理
java·spring boot·后端
light blue bird8 分钟前
主子端台二分法任务汇总组件
前端·数据库·.net·桌面端winform
rleS IONS23 分钟前
SpringBoot中自定义Starter
java·spring boot·后端
DevilSeagull40 分钟前
MySQL(2) 客户端工具和建库
开发语言·数据库·后端·mysql·服务
jeffwang1 小时前
我做了个让 AI 看屏幕跑测试的工具,因为 Playwright 测不了我的 Flutter Web
前端
吴声子夜歌2 小时前
Node.js——JSON-Server轻量级RESTful API
node.js·json·restful·json-server
HSunR2 小时前
dify 搭建ai作业批改流
开发语言·前端·javascript
代码不加糖2 小时前
2026 跨境电商独立站实战:从 0 到 1 搭建高转化 SaaS 商城(附源码)
开发语言·前端·javascript
TeDi TIVE2 小时前
springboot和springframework版本依赖关系
java·spring boot·后端