搞懂什么是Node.js原来这么简单

Node.js 构建简单应用 这个基础应用可以进一步扩展,如添加数据库支持、引入 Express 框架处理复杂路由等,为更复杂的项目奠定基础。</h1><p>这是我的第一个 Node.js 应用。通过上述步骤,你已经构建了一个简单的 Node.js 应用,并且可以处理不同的请求路径。接下来,我们将一步步介绍如何用 Node.js 构建一个简单的 HTTP 应用程序。命令生成 package.json 文件,它包含了项目的配置信息。文件,这是应用的入口文件,用于设置服务器和处理请求。localhost:${PORT}') 上运行; 阅读详情

Node.js 的官方介绍

在 Node.js 的官方网站的首页中,有这样一句话来描述 Node.js:

Node.js® is a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.

翻译过来的意思就是:

Node.js 是基于 Chrome 的 V8 JavaScript 引擎的 JavaScript 运行时。Node.js 采用事件驱动、非堵塞 I/O 模型,使其轻量化和高效。

上面这句话的第一句说明了什么是 Node.js,第二句说明了 Node.js 的特点。

想要搞懂官方这句话的具体含义,我们还要从 JavaScript 语言说起。

Node.js 的核心开发语言

这里假设你已经掌握了 JavaScript 语言的基础语法以及基本使用。如果还没有掌握 JavaScript 的话,还是先去入门一下 JavaScript 语言吧。

掌握了 JavaScript 语言的应该知道,JavaScript 语言是作为浏览器的脚本语言,可以实现网页与用户之间的交互。

什么是交互?比如用户在网页中输入用户名或密码,这种用户输入行为就可以叫做交互。或者用户点击网页中的按钮等等,都可以叫做交互。

JavaScript 语言之所以可以实现网页与用户之间的交互,主要是依靠事件来完成的。比如,用户的输入事件、点击按钮事件等等。

下面我们通过用户点击按钮的行为为例,来看看 JavaScript 语言是如何处理的。

javascript-event-handling

通过上面的分析图,我们可以清晰的看到:

  1. 用户点击网页的按钮,执行 JavaScript 逻辑。
  2. JavaScript 逻辑经历三个阶段,分别是捕获事件、触发事件和事件冒泡。
  3. 当 JavaScript 逻辑执行完毕后,会将结果返回网页。
  4. 网页再根据结果显示给用户。

通过这样的一个小案例,我们可以知道 JavaScript 语言处理网页与用户之间的交互,主要是依靠事件驱动。

网页与 Node.js 中 JavaScript 的区别

目前几乎所有的浏览器都支持 JavaScript 语言,之所以支持的原因在于浏览器中都集成了 JavaScript 引擎。

在众多浏览器中,Chrome 浏览器的性能相对更好,而且 Chrome 浏览器集成的 V8 JavaScript 引擎还是开源的。

而 Node.js 就是利用了 Chrome 浏览器的开源 V8 JavaScript 引擎。那在网页中使用 JavaScript 语言和在 Node.js 中使用 JavaScript 语言有什么不同呢?我们可以通过下面这张图来了解一下。

在这里插入图片描述

通过上图可以清晰地看到,Node.js 相对于浏览器 Node.js 没有提供 WebKit 内核和 HTML 相关的 UI 技术。也就是说,Node.js 只提供了 JavaScript 语言。

为什么要这样呢?其实,Node.js 的作者最初的想法就是想设计一个轻量和高效的服务器。

什么是服务器

那服务器又是什么呢?如果把一个 WEB 应用比作是一个人的话,那服务器就是人的大脑。

在这里插入图片描述

通过上面的图我们可以知道,人与人交流时,基本上要通过以下几个步骤:

  1. 别人与我交流,我是通过人的感官进行接收。
  2. 感官将信息传递给大脑。
  3. 大脑接收到信息后,进行处理,将处理的结果返回。
  4. 再通过感官反馈给与我交流的人。

通过这个过程,我们可以发现,别人是直接通过感官与我交流的,并不知道大脑是如何工作的,也并不关心大脑是如何工作的。

在这里插入图片描述

而 WEB 应用与人类似,用户是与网页进行交互,网页将信息传递给服务器,服务器接收、处理并响应,最后网页将结果显示给用户。

作为用户来说,并不关心服务器是如何工作的,甚至用户都感觉不到服务器的存在。但是,作为开发人员,想要开发一个完整的 WEB 应用,服务器的逻辑核心。

从现在开始,我们要从用户思维转变成开发思维。通过开发思维重新审视我们曾经使用过的 WEB 应用,你会发现有所不同。

思维的转变是很重要的!很重要的!很重要的!重要的事儿说三遍。

Node.js 的简单理解

讲到这里,我们可以简单地来归纳一下 Node.js 到底是什么了。

Node.js 就是基于 Chrome 浏览器的 V8 JavaScript 引擎,以 JavaScript 语言为核心开发语言的服务器技术。

如果使用 Node.js 开发一个 WEB 应用应该是怎么样的呢?

在这里插入图片描述

由于 JavaScript 逻辑是依靠事件驱动的,所以就不难理解 Node.js 是事件驱动的了。

想要更好地理解和掌握 Node.js,还是先回去恶补一下 JavaScript 语言中的事件处理那些内容吧!

Node.js 除了是基于 Chrome 浏览器的 V8 引擎以外,还提供了一系列的模块,让我们可以方便地实现一些功能。比如,处理客户端的请求、文件的处理等操作。

在这里插入图片描述

我们学习 Node.js,主要就是学习 Node.js 所提供的模块内容。所以,不要着急,我们慢慢来。

深入掌握JavaScript Node.js开发 本文还有配套的精品资源,点击获取 简介:JavaScript是前端开发中的主导语言,在Node.js环境下的服务器端编程中也显示出重要性。Node.js是一个基于V8引擎的跨平台JavaScript运行环境,具有事件驱动和非阻塞I/O特性,适用于构建高性能的并发服务器。该压缩包文件可能包含有关Node.js核心概念和模块的资料,比如模块化设计、文件系统操作、HTTP服务器创... 阅读详情

相关推荐

告别懵圈!用CANoe手把手解析ISO15765多帧传输(附实战报文分析)

本文详细解析了ISO15765多帧传输协议在汽车电子诊断中的应用,通过CANoe实战演示了从首帧发送到流控协商再到连续帧传输的完整流程。文章包含嵌入式系统诊断协议的深度分析,特别适合UDS和CAN总线开发人员学习多帧传输机制及常见问题解决方案。

weixin_30813225的博客 281

Node.js简介

目录 一、什么是node.js 二、为什么要用node.js 三、node.js 中的npm 1、npm 是什么 2、npm 命令安装模块 3、选用 cnpm 四、node.js 的模块化 1、CommonJS模块规范及规范化内容 2、moudle对象 3、使用require导入模块 一、什么是node.js Node.js是JavaScript语言的服务器运行环境。 Node.js 就是运行在服务端的 JavaScript。 Node.js 是一个基于C...

m0_61700036的博客 3万+

spdk + fio测试nvme 设备的性能

fio的测试对象可以是块设备、文件等,在spdk的使用过程中会unbind默认的nvme driver,所以在系统中是看不到nvme块设备的,在spdk中可以通过fio_plugin的方式,将spdk的用户态driver部分的io功能打包成一个ioengine提供给fio使用,可以综合spdk的高性能和fio提供的复杂场景。更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加。这个jobfile是spdk中提供的例子。领取,关注我持续更新哦!2.7 jobfile的例子。

lingshengxiyou的博客 1088

Node.js简介及基本应用

Node.js简介及基本应用1 Node.js是什么2 为什么要用Node.js3 Node.js应用程序的示例4 Node.js中的npm5 yarn包管理工具6 REPL环境 1 Node.js是什么 传统意义上的javascript运行在浏览器上,这是因为浏览器内核实际上分为两个部分,渲染引擎和javaScript引擎。前者主要负责渲染HTML+CSS,后者主要负责运行javaScript。 Node.js是JavaScript语言的服务器运行环境,JavaScript可以脱离浏览器直接运行。所谓“运

橘猫吃不胖的博客 4938

【SAP中的框架协议】

在SAP中,框架协议(Framework Agreement) 是企业与供应商签订的长期采购约束文件,用于简化重复性采购流程、锁定交易条款并降低管理成本。

m0_73548864的博客 1296

图片边界矢量化-地理配准

无地理和投影信息的JPG图片,通过ArcGIS进行地理配准(Georeferencing)完成数字化边界。

u012727861的博客 1905

什么是Node.js

1.什么是Node.js? Node是一个JavaScript运行环境(runtime)。实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。(摘自百度百科)       Node.js并非一种语

倾城一笑stu 1201

道路缺陷检测实战指南:基于YOLOv11的深度学习系统从搭建到落地

道路缺陷检测项目的每一步,都是“理论→实践→反思→优化”的成长循环。当你看到自己开发的系统能精准识别出道路上的每一处裂缝、每一个坑洼时,那种“技术解决真实问题”的成就感,会让你明白深度学习不止是论文里的公式,更是改变行业的工具。如果过程中遇到模型不收敛、界面功能异常等问题,不妨把问题拆解成“数据是否标注准确?”“模型参数是否合理?”“界面逻辑是否有漏洞?”等小问题逐一排查。记住,每解决一个问题,你就离“能独立落地AI项目的工程师”更近一步。

LXY_LOVE36的博客 171

简单快速搞懂Node.js是什么?

Node.js基础介绍一.简介二.node.js的3个特点(1) 单线程(2) 非阻塞I/O(3) 事件驱动(eventLoop) 一.简介 官方介绍:Node.js 是基于 Chrome 的 V8 JavaScript 引擎的 JavaScript 运行。Node.js 采用事件驱动、非堵塞 I/O 模型,使其轻量化和高效。 简单一句话:node.js是JavaScript运行在服务端的一个环境,它将前端语言的编程思想转移到了服务端。用js也能写服务端代码搭建后台了。 二.node.js的3个特点 (

imapig_的博客 898

基于python CNN卷积神经网络模型实现6类别垃圾分类 毕业设计 附完整代码数据

基于python CNN卷积神经网络模型实现6类别垃圾分类 毕业设计 附完整代码数据

1665

【100%通过率】华为od 机试真题 C语言 实现【补种未成活胡杨】

近些年来,我国防沙治沙取得显著成果。某沙漠新种植N棵胡杨(编号1-N),排成一排。一个月后,有M棵胡杨未能成活。现可补种胡杨K棵,请问如何补种(只能补种,不能新种),可以得到最多的连续胡杨树?

MISAYAONE的博客 1654

Node.js 是什么?Node.js与JavaScript的区别是什么?

node.js是什么?Node.js是一个Javascript运行环境(runtime)。Node.js与JavaScript的区别是什么?本质:     Javascript是一种web前端语言,主要用于web开发中,由浏览器解析执行     Node.js是一个可以快速构建网络服务及应用的平台,是用Javascri...

吴甜甜的技术博客 3万+

【100%通过率】2023华为od机试C卷【电脑病毒感染】C语言 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 1042

Node.js中运行JavaScript代码

最近学习JS的内容,有幸得到Bill的指点,之前自己运行JS的脚本是在浏览器上,之后惊喜的发现,可以在加载Node.js环境中,在命令窗口运行脚本。这样做的好处是什么呢?大大的减少了窗口来回切换的的频率,提高我们的效率。看起来也是很高大上的。

No body But u 8210

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【Node.js】使用 Node.js 需要了解多少 JavaScript?

总的来说,使用 Node.js 开发并不要求你掌握所有 JavaScript 的高级知识,但了解 JavaScript 的基础和异步编程的核心概念,将大大提高你的开发效率。通过不断学习和实践,你将能够利用 Node.js 构建出高效、可扩展的应用程序。希望本文能帮助你了解在学习 Node.js 之前需要掌握的 JavaScript 知识,帮助你在 Node.js 的开发路上走得更远。祝你编码愉快!

佚名程序员 1935

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

node.js 初识node.js,运行在服务端的 JavaScript(一)

文章目录1.浏览器原理2.浏览器访问服务器过程3.web开发本质4.什么是node.js?5.node.js有哪些特点?6.安装Node.js 1.浏览器原理 2.浏览器访问服务器过程 https://edu.aliyun.com/lesson_1730_14083?spm=5176.10731542.0.0.4fb815f2VGm9PU#_14083 请求报文和相应报文。 3.web开发本质 一般web都是下面三点一样: 1.请求,客户端发起请求。 2.处理,服务器处理请求。 3.响应,服务器将处理结果

探索技术与实践的旅程,分享编程经验与工具使用心得,助力开发者提升技能。 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Node.js 简单入门

目录一. 什么是Nodejs二. Nodejs组成图(对比jdk)三. Nodejs的安装四. 第一个Nodejs程序五. Node实现请求响应六. Node操作MYSQL数据库1. 安装mysql依赖2. 创建数据库3. 新建db.js进行操作4. 运行查看效果 一. 什么是Nodejs Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。发布于2009年5月,由Ryan Dahl

欢迎来到 Baret-H 的博客 3478

node.js和javascript的关系

node.js是一个基于 Chrome V8引擎的 JavaScript 运行时环境 一、类比JavaScript和java JavaScript java V8 JVM node.js JRE JavaScript和java都是一门编程语言,至于两者的关系,是雷锋和雷峰塔的关系 V8是google开源的JavaScript引擎,用于执行JavaScript,...

【小石头的茅坑】 71万+

node.js和JavaScript的关系

1. 什么是node.js node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时的环境。 2. 什么是JavaScript 2.1比较JavaScript 和 Java 两者之间没有关系 V8是google开源的JavaScript引擎,用于执行JavaScript;类似JVM执行java字节码。在node.js 诞生之前,V8是内置于Chromeium中的,现在也...

weixin_41160054的博客 5530

简单认识:Node.js、VUE、NPM

一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型。渐进式框架:新的项目或者老旧的项目可以根据自己实际需求和场景来部分使用VUE。独立脚本:无需构建,可以当作一个独立的 JS 文件来是使用,看作一个声明式的JQuery替代品。任何页面作为 Web Component 嵌入单页面应用 (SPA)全栈 / SSR还有web之外的方式(桌面程序、移动端程序)

luluer2016的博客 2112

JavaScript和Node.js的关系

JavaScript和Node.js的联系与区别。

cnds123的专栏 4509

Node.js和Javascript的异同

JavaScript的组成: ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象) DOM(一些操作页面元素的方法) BOM(一些操作浏览器的方法) Nodejs的组成: ECMAScript(语言基础,如:语法、数据类型结构以及一些内置对象) os(操作系统) file(文件系统) net(网络系统) ...

【小石头的茅坑】 71万+
上一篇: Node.js 长期支持版本和当前发布版本的区别
下一篇: [Mozilla]Ajax快速入门
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值