Node.js 新手教程
1、nodejs简介
Node.js 是一个开源和跨平台的 JavaScript 运行时环境。它是几乎所有类型项目的流行工具!
Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的核心)。这使得 Node.js 的性能非常出色。
Node.js 应用程序在单个进程中运行,无需为每个请求创建新线程。Node.js 在其标准库中提供了一组异步 I/O 原语,可防止 JavaScript 代码阻塞,并且通常,Node.js 中的库是使用非阻塞范例编写的,这使得阻塞行为成为例外而不是常态。
当 Node.js 执行 I/O 操作(如从网络读取、访问数据库或文件系统)时,Node.js 不会阻塞线程并浪费 CPU 周期等待,而是会在响应返回时恢复操作。
这使得 Node.js 能够使用单个服务器处理数千个并发连接,而不会引入管理线程并发的负担,而这可能是一个重要的错误来源。
Node.js 具有独特的优势,因为数百万为浏览器编写 JavaScript 的前端开发人员现在除了能够编写客户端代码之外,还能编写服务器端代码,而无需学习完全不同的语言。
在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,因为您不必等待所有用户更新他们的浏览器 - 您可以通过更改 Node.js 版本来决定使用哪个 ECMAScript 版本,并且您还可以通过使用标志运行 Node.js 来启用特定的实验性功能。
Node.js 是一个开源和跨平台的 JavaScript 运行时环境。它是几乎所有类型项目的流行工具!
Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的核心)。这使得 Node.js 的性能非常出色。
Node.js 应用程序在单个进程中运行,无需为每个请求创建新线程。Node.js 在其标准库中提供了一组异步 I/O 原语,可防止 JavaScript 代码阻塞,并且通常,Node.js 中的库是使用非阻塞范例编写的,这使得阻塞行为成为例外而不是常态。
当 Node.js 执行 I/O 操作(如从网络读取、访问数据库或文件系统)时,Node.js 不会阻塞线程并浪费 CPU 周期等待,而是会在响应返回时恢复操作。
这使得 Node.js 能够使用单个服务器处理数千个并发连接,而不会引入管理线程并发的负担,而这可能是一个重要的错误来源。
Node.js 具有独特的优势,因为数百万为浏览器编写 JavaScript 的前端开发人员现在除了能够编写客户端代码之外,还能编写服务器端代码,而无需学习完全不同的语言。
在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,因为您不必等待所有用户更新他们的浏览器 - 您可以通过更改 Node.js 版本来决定使用哪个 ECMAScript 版本,并且您还可以通过使用标志运行 Node.js 来启用特定的实验性功能。
2、nodejs安装
建议通过包管理器安装,推荐NVM
3、Node.js 和浏览器之间的区别
浏览器和 Node.js 都使用 JavaScript 作为编程语言。构建在浏览器中运行的应用程序与构建 Node.js 应用程序完全不同。尽管它们始终都是 JavaScript,但仍存在一些关键差异,这些差异使体验截然不同。
从广泛使用 JavaScript 的前端开发人员的角度来看,Node.js 应用程序具有巨大的优势:使用一种语言就可以舒适地编写所有内容(前端和后端)。
在浏览器中,您大部分时间都在与 DOM 或其他 Web 平台 API(如 Cookies)进行交互。当然,这些在 Node.js 中并不存在。您没有document以及window浏览器提供的所有其他对象。
而在浏览器中,我们没有 Node.js 通过其模块提供的所有优良 API,例如文件系统访问功能。
另一个很大的区别是,在 Node.js 中,您可以控制环境。除非您正在构建任何人都可以部署到任何地方的开源应用程序,否则您知道将在哪个版本的 Node.js 上运行该应用程序。与浏览器环境相比,您无法选择访问者将使用哪种浏览器,这非常方便。
这意味着您可以编写 Node.js 版本支持的所有现代 ES2015+ JavaScript。由于 JavaScript 更新换代很快,但浏览器的升级速度却有点慢,因此有时在网络上您只能使用较旧的 JavaScript / ECMAScript 版本。您可以使用 Babel 将代码转换为与 ES5 兼容的代码,然后再将其发送到浏览器,但在 Node.js 中,您不需要这样做。
另一个区别是 Node.js 同时支持 CommonJS 和 ES 模块系统(自 Node.js v12 起),而在浏览器中,我们开始看到 ES 模块标准正在实施。
4、npm 包管理器简介
npm是 Node.js 的标准包管理器。
安装所有依赖项
npm install
安装单个包
npm install <package-name>
更新软件包
npm update
更新单个包
npm update <package-name>
安装软件包的特定版本
npm install <package-name>@<version>
运行任务
npm run <task-name>
例如:
{"scripts": {"start-dev": "node lib/server-development","start": "node lib/server-production"}
}
使用此功能运行 Webpack :
{"scripts": {"watch": "webpack --watch --progress --colors --config webpack.conf.js","dev": "webpack --progress --colors --config webpack.conf.js","prod": "NODE_ENV=production webpack -p --config webpack.conf.js"}
}
因此,您无需输入那些容易忘记或输错的长命令,而是可以运行
$ npm run watch
$ npm run dev
$ npm run prod
注:具体请看官方文档 https://nodejs.org/zh-cn/learn/getting-started/introduction-to-nodejs
相关文章:
Node.js 新手教程
1、nodejs简介 Node.js 是一个开源和跨平台的 JavaScript 运行时环境。它是几乎所有类型项目的流行工具! Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的核心)。这使得 Node.js 的性能非常出色。 Node.js 应用程序在单个进…...
Latex转word(docx)或者说PDF转word 一个相对靠谱的方式
0. 前言 投文章过程中总会有各种各样的要求,其中提供word格式的手稿往往是令我头疼的一件事。尤其在多公式的文章中,其中公式转换是一个头疼的地方,还有很多图表,格式等等,想想就让人头疼欲裂。实践中摸索出一条相对靠…...
前端热门面试题目——React、Node
img 标签的 srcset 属性的作用 srcset 属性允许开发者为不同设备或分辨率提供多个图像选项,优化加载的图片以适应设备的屏幕大小和分辨率。这提高了性能和用户体验。 示例: <img src"default.jpg" srcset"small.jpg 480w, medium.j…...
Ansible自动化一键部署单节点集群架构
自动化部署利器:Ansible 一键部署脚本 在现代IT基础设施管理中,Ansible以其简洁、强大的自动化能力脱颖而出。以下是精心打造的Ansible自动化一键部署脚本,旨在简化部署流程,提升效率,确保一致性和可靠性。 通过这个…...
电脑插入耳机和音响,只显示一个播放设备
1. 控制面板-硬件和声音-Realtek高清音频-扬声器-设备高级设置-播放设备里选择使用前部和后部输出设备同时播放两种不同的音频流 在声音设置中就可以看到耳机播放选项...
家政小程序开发,打造便捷家政生活小程序
目前,随着社会人就老龄化和生活压力的加重,家政服务市场的需求正在不断上升,家政市场的规模也正在逐渐扩大,发展前景可观。 在市场快速发展的影响下,越来越多的企业开始进入到市场中,同时家政市场布局也发…...
tcpdump抓包wireshark分析
背景 分析特定协议的数据包,如 HTTP、DNS、TCP、UDP 等,诊断网络问题,例如连接故障、延迟和数据包丢失。 大概过程 1.安装tcpdump yum update yum install tcpdump2.抓包,从当前时间起,一小时后停止,…...
文件无法直接拖入zotero
解决方法:取消管理员权限打开zotero。 具体如下:右键zotero应用程序,打开属性,选择“兼容性”,点击底下的“更改所有用户的设置”,在弹出的框中取消“以管理员身份运行此程序”。如下所示:...
使用 useMemo 和 React.memo 优化 React 组件渲染
在 React 中,性能优化是一个重要的主题,特别是在复杂的组件树中。本文将演示如何在同一个父组件中使用 useMemo 和 React.memo 来优化子组件的渲染。 1. 组件结构 创建一个父组件,包含两个子组件: MemoChild:使用 R…...
ISAAC SIM踩坑记录--添加第三方3D场景
ISAAC SIM仿真首先就是要有合适的3D场景,官方提供了一些场景,如果不能满足要求,那就只能自己建。 对于我这种不会3D建模的菜鸟,只能到网上下载了,sketchfab就是一个不错的平台,有不少免费资源可以下载。 …...
Git 详解
Git 详解 Git 是一个分布式版本控制系统,用于高效地管理项目代码的版本历史。它是目前最流行的版本控制工具之一,广泛应用于软件开发领域。Git 的分布式架构允许开发者在本地进行代码的版本管理,并与远程仓库同步,实现团队协作。…...
Linux操作系统3-文件与IO操作1(从C语言IO操作到系统调用)
上篇文章:Linux操作系统2-进程控制3(进程替换,exec相关函数和系统调用)_execv系统调用-CSDN博客 本篇代码Gitee仓库:myLerningCode 橘子真甜/linux学习 - 码云 - 开源中国 (gitee.com) 本篇重点:C语言基础IO与系统调用 目录 一.…...
【Python网络爬虫笔记】8- (BeautifulSoup)抓取电影天堂2024年最新电影,并保存所有电影名称和链接
目录 一. BeautifulSoup的作用二. 核心方法介绍2.1 构造函数2.2 find()方法2.3 find_all()方法2.4 select()方法 三. 网络爬虫中使用BeautifulSoup四、案例爬取结果 一. BeautifulSoup的作用 解析HTML/XML文档:它可以将复杂的HTML或XML文本转换为易于操作的树形结构…...
Rancher V2.7.0安装教程
1、执行Docker命令 docker run -d --privileged --restartunless-stopped -p 80:80 -p 443:443 -v /home/rancher:/var/lib/rancher --name rancher registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.7.0 注:如果容器启动失败,参考我另外一篇文章…...
STM32MX 配置CANFD收发通讯
一、环境 MCU:STM32G0B1CEU6 CAN收发器:JIA1042 二、MX配置 配置SYS 配置canfd并开启中断,我开了两个FDCAN,配置是一样的,这里贴一下波特率的计算公式: 也就是:CAN时钟频率/预分频器/&…...
(12)时间序列预测之MICN(CNN)
文章目录 前言1. challenge 一、网络结构1. MHDecomp2. Trend-cyclical Prediction Block3. Seasonal Prediction BlockMIC LayerMerge 实验结果1.长时预测 总结参考 文章信息 模型: MICN (Multi-scale Isometric Convolution Network)关键词: 长时预测…...
嵌入式蓝桥杯学习3 外部中断实现按键
Cubemx配置 前面的配置依旧一样。 原文链接:https://blog.csdn.net/m0_74246768/article/details/144227188 1.打开cubemx,将PB0到PB1配置为GPIO_EXTI模式。 2.在System-Core中点击GPIO,选择PB0到PB2, GPIO_Mode(触…...
自由学习记录(29)
FileStream FileStream 是 .NET 中用于文件操作的重要类,位于 System.IO 命名空间中。它提供了对文件的同步和异步读写操作。以下是它的方法签名和重载的详细介绍: 构造函数签名和重载 FileStream 提供多个构造函数,允许在创建实例时指定文…...
使用YOLO系列txt目标检测标签的滑窗切割:批量处理图像和标签的实用工具
使用YOLO系列txt目标检测标签的滑窗切割:批量处理图像和标签的实用工具 使用YOLO的TXT目标检测标签的滑窗切割:批量处理图像和标签的实用工具背景1. 代码概述2. 滑窗切割算法原理滑窗切割步骤:示例: 3. **代码实现**1. **加载标签…...
架构10-可观测性
零、文章目录 架构10-可观测性 1、可观测性 (1)可观测性的背景 **历史沿革:**可观测性最初由匈牙利数学家鲁道夫卡尔曼提出,用于线性动态控制系统。后来,该概念被引入到计算机科学中。**现代意义:**在分…...
Bpmn Process Designer性能优化指南:大型流程图的渲染与交互优化
Bpmn Process Designer性能优化指南:大型流程图的渲染与交互优化 【免费下载链接】bpmn-process-designer bpmn-js 工具库 项目地址: https://gitcode.com/gh_mirrors/bp/bpmn-process-designer Bpmn Process Designer是一款基于bpmn-js的强大流程设计器工具…...
15. tsconfig.json 配置详解
15. tsconfig.json 配置详解 1. 概述 tsconfig.json 是 TypeScript 项目的核心配置文件,用于指定编译选项、文件包含/排除规则、项目引用等。正确配置 tsconfig.json 是 TypeScript 项目工程化的基础。 ┌────────────────────────────…...
智能驾驶系统场景下的自动化仿真测试评价技术【附仿真】
✨ 长期致力于智能驾驶系统、有效性评价、测试用例生成、测试场景优化、自动化仿真测试平台研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于复杂度…...
LangGraph Reducer 深度应用:为什么你的 State 合并总是出问题?
这篇文章帮你搞定 LangGraph Reducer 的高级用法,从源码解析到生产级模式,从并发安全到测试策略 阅读提示 适合谁看:已读过 State 设计模式基础,想深入 Reducer 机制的工程师看完能做什么:能实现生产级 Reducer&#x…...
软件开发行业的未来:AI编程将如何改变开发行业
在科技飞速发展的今天,人工智能(AI)正以前所未有的速度渗透到各个领域,软件开发行业也不例外。AI编程作为AI技术在软件开发领域的重要应用,正在深刻地改变着开发行业的格局。对于软件测试从业者来说,了解AI…...
如何永久免费使用IDM:开源激活脚本完整使用指南
如何永久免费使用IDM:开源激活脚本完整使用指南 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script 你是否厌倦了Internet Download Manager(…...
如何快速掌握DeepL翻译插件:浏览器跨语言阅读的终极解决方案
如何快速掌握DeepL翻译插件:浏览器跨语言阅读的终极解决方案 【免费下载链接】deepl-chrome-extension A DeepL Translator Chrome extension 项目地址: https://gitcode.com/gh_mirrors/de/deepl-chrome-extension DeepL翻译插件是一款基于DeepL API的高质量…...
双榜第一!文心5.1登顶中文创意写作综合实力评测
【大力财经】5月18日,全球权威ICT领域市场研究机构Omdia发布《2026 年基础模型中文创意写作能力评估》报告,围绕中文创意写作七大核心维度,对 DeepSeek V4、文心5.1(ERNIE 5.1)、GPT 5.5 等 8大国内外主流顶级文本模型…...
别再只会画矩形了!用Leaflet+L.geoJSON搞定复杂行政区遮罩(含飞地处理)
突破Leaflet遮罩技术瓶颈:复杂行政区与飞地处理的终极方案 当我们面对真实世界中的行政区划数据时,理想化的矩形遮罩显得力不从心。中国行政区划的复杂性——飞地、嵌套洞、不规则边界——要求开发者掌握更高级的地图遮罩技术。本文将带您深入Leaflet的L…...
告别PPT超时焦虑:PPTTimer让演讲时间管理变得如此简单
告别PPT超时焦虑:PPTTimer让演讲时间管理变得如此简单 【免费下载链接】ppttimer 一个简易的 PPT 计时器 项目地址: https://gitcode.com/gh_mirrors/pp/ppttimer 还在为PPT演示超时而烦恼吗?每次演讲都像和时间赛跑,担心讲得太快或太…...
