Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(上)

简介: Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)

Node.js 简介



Node.js 是一个开源和跨平台的JavaScript运行时环境。


Node.js 在浏览器之外运行V8 JavaScript引擎(Google Chrome的内核)。


Node.js 可以构建web服务器。


Node.js 是单线程非阻塞的,这允许Node.js使用单个服务器就可以处理数千个并发连接。


Node.js 可以使用新的ECMAScript标准。


Node.js 安装



1、打开nodejs官网:https://nodejs.org/en/


2、下载安装包,安装


3、验证

node -v //查看nodejs版本
npm -v //查看npm版本



Node.js 历史版本下载地址:https://nodejs.org/dist/


运行 Node.js 脚本



1、Node.js REPL


Node.js REPL ,类似 Window 系统的终端,我们可以在终端中输入命令,并接收系统的响应,提供交互式的nodejs编程环境。


1.1、输入以下命令来启动 Node 的终端:


1.2、接下来就可以在 > 后面输入一些表达式或者语句,然后按下回车,就会执行代码并给出反馈。


1.3、退出REPL


按下两次 ctrl + c 键或者 ctrl + d 就能退出 REPL。


使用REPL可以简单的去调试 Javascript 代码


1.4、运行脚本文件


node 脚本文件


Node.js 事件循环



Node.js 事件循环阐明了 Node.js 如何做到异步且具有非阻塞的 I/O。


1、调用堆栈


调用堆栈是一个 LIFO 队列(后进先出)。


事件循环不断地检查调用堆栈,以查看是否需要运行任何函数。

const bar = () => console.log('bar')
const baz = () => console.log('baz')
const foo = () => {
 console.log('foo')
 bar()
 baz()
}
foo()
//foo
//bar
//baz



const bar = () => console.log('bar')
const baz = () => console.log('baz')
const foo = () => {
        console.log('foo')
        setTimeout(bar, 0)
        baz()
}
foo()
//foo
//baz
//bar



消息队列


当调用 setTimeout() 时, Node.js 会启动定时器。 当定时器到期时,则回调函数会被放入 消息队列 中。包括其它的一些异步的操作,网络请求或者一些事件的订阅,得到响应后它们的回调函数也会被放入 消息队列 。


事件循环会赋予调用堆栈优先级,它首先处理在调用堆栈中找到的所有东西,一旦其中没有任何东西,便开始处理消息队列中的东西。


Node.js 事件循环_ES6 作业队列



ECMAScript 2015 引入了 作业队列 的概念, Promise 使用了该队列。 这种方式会尽快地执行异步函数的结果,而不是放在调用堆栈的末尾。


作业队列的优先级高于消息队列。

const bar = () => console.log('bar')
const baz = () => console.log('baz')
const foo = () => {
 console.log('foo')
 setTimeout(bar, 0)
 new Promise((resolve, reject) =>
  resolve('应该在 baz 之后、bar 之前')
).then(resolve => console.log(resolve))
 baz()
}
foo()
//foo
//baz
//应该在 baz 之后、bar 之前
//bar


Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)(下):https://developer.aliyun.com/article/1420285

目录
相关文章
|
17天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
39 1
|
5天前
|
存储 JavaScript NoSQL
Node.js新作《循序渐进Node.js企业级开发实践》简介
《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。
28 9
|
20天前
|
Web App开发 JavaScript 前端开发
2024年5月node.js安装(winmac系统)保姆级教程
本篇博客为2024年5月版Node.js安装教程,适用于Windows和Mac系统。作者是一名熟悉JavaScript与Vue的大一学生,分享了Node.js的基本介绍、下载链接及简单安装步骤。安装完成后,通过终端命令`node -v`验证版本即可确认安装成功。欢迎关注作者,获取更多技术文章。
23 2
2024年5月node.js安装(winmac系统)保姆级教程
|
19天前
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
64 2
|
1月前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
36 1
|
1月前
|
开发框架 JavaScript 前端开发
Node.js日记:客户端和服务端介绍、Node.js介绍
Node.js日记:客户端和服务端介绍、Node.js介绍
|
1月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
1月前
|
JavaScript 前端开发 开发工具
Node.js——初识Node.js
Node.js——初识Node.js
32 4
|
1月前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
35 4