当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/497564.html

相关文章:

  • Latex转word(docx)或者说PDF转word 一个相对靠谱的方式
  • 前端热门面试题目——React、Node
  • Ansible自动化一键部署单节点集群架构
  • 电脑插入耳机和音响,只显示一个播放设备
  • 家政小程序开发,打造便捷家政生活小程序
  • tcpdump抓包wireshark分析
  • 文件无法直接拖入zotero
  • 使用 useMemo 和 React.memo 优化 React 组件渲染
  • ISAAC SIM踩坑记录--添加第三方3D场景
  • Git 详解
  • Linux操作系统3-文件与IO操作1(从C语言IO操作到系统调用)
  • 【Python网络爬虫笔记】8- (BeautifulSoup)抓取电影天堂2024年最新电影,并保存所有电影名称和链接
  • Rancher V2.7.0安装教程
  • STM32MX 配置CANFD收发通讯
  • (12)时间序列预测之MICN(CNN)
  • 嵌入式蓝桥杯学习3 外部中断实现按键
  • 自由学习记录(29)
  • 使用YOLO系列txt目标检测标签的滑窗切割:批量处理图像和标签的实用工具
  • 架构10-可观测性
  • git管理Unity项目的正确方式
  • openssl使用哈希算法生成随机密钥
  • 将word里自带公式编辑器编辑的公式转换成用mathtype编辑的格式
  • 校园失物招领系统基于 SpringBoot:点亮校园归还遗失物之光
  • dhcpd服务器的配置与管理(超详细!!!)
  • Qml之基本控件
  • 【Java从入门到放弃 之 Stream API】
  • Ruby On Rails 笔记1——Rails 入门
  • 高效开发 Python Web 应用:FastAPI 数据验证与响应体设计
  • 基于“开源 2+1 链动 O2O 商城小程序”的门店拉新策略与流程设计
  • 33.5 remote实战项目之设计prometheus数据源的结构