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

相关推荐
Senar8 分钟前
Web端选择本地文件的几种方式
前端·javascript·html
iuyou️9 分钟前
Spring Boot知识点详解
java·spring boot·后端
一弓虽21 分钟前
SpringBoot 学习
java·spring boot·后端·学习
烛阴25 分钟前
UV Coordinates & Uniforms -- OpenGL UV坐标和Uniform变量
前端·webgl
姑苏洛言30 分钟前
扫码小程序实现仓库进销存管理中遇到的问题 setStorageSync 存储大小限制错误解决方案
前端·后端
烛阴40 分钟前
JavaScript 的 8 大“阴间陷阱”,你绝对踩过!99% 程序员崩溃瞬间
前端·javascript·面试
光而不耀@lgy1 小时前
C++初登门槛
linux·开发语言·网络·c++·后端
方圆想当图灵1 小时前
由 Mybatis 源码畅谈软件设计(七):SQL “染色” 拦截器实战
后端·mybatis·代码规范
lh_12541 小时前
ECharts 地图开发入门
前端·javascript·echarts
jjw_zyfx1 小时前
成熟的前端vue vite websocket,Django后端实现方案包含主动断开websocket连接的实现
前端·vue.js·websocket