这是我参与「第五届青训营 」笔记创作活动的第7天
什么是Node.js?
Node.js是一个基于Chrome V8引擎的JS运行环境
Node.js中的JS运行环境
V8引擎和内置API函数
- 浏览器是JS的前端运行环境
- Node.js是Js的后端运行环境
- Node.js中无法调用DOM和BOM等浏览器内置API
Node.js 的应用场景
- 前端工程化
- Web 服务端应用
- Electron 跨端桌面应用
Node.js 运行时结构- 特点
- 异步I/O
当 Node.js 执行I/O 操作时,会在响应返回后恢复操作,而不是阻塞线程并占用额外内存等待
- 单线程
JS 单线程
实际: JS 线程 + uv 线程池 + V8 任务线程池 + V8 Inspector 线程
优点: 不用考虑多线程状态同步问题,也就不需要锁;同时还能比较高效地利用系统资源
缺点: 阻塞会产生更多负面影响
解决办法:多进程或多线程
- 跨平台
跨平台 (大部分功能、api) Node.is 跨平台 + JS 无需编译环境 (+ Web 跨平台 + 诊断工具跨平台)
= 开发成本低(大部分场景无需担心跨平台问题),整体学习成本低
编写 Http Server - 安装 Node.js
- Mac,Linux 推荐使用 nvm。多版本管理
- Windows 推荐 nvm4w 或是官方安装包
- 安装慢,安装失败的情况,设置安装源 NVM NODEJS ORG MIRROR=httos://npmmirror.com/mirrors/node nym install 16
Node.js的特性
Node.js贯穿于客户端(如Vue这类框架的底层依赖)和服务端(如后端开发)
Node.js的语法完全就是javascript和ES6的语法
Node.js具有超强的高并发能力,能够实现高性能服务器 开发周期短、开发成本低、学习成本低
一部分经常使用的命令
- npm -v:查看npm安装的版本。
- npm init:会引导你建立一个package.json文件,包括名称、版本、作者等信息。
- npm list:查看当前目录下已安装的node包。
- npm ls:查看当前目录下已安装的node包。
- npm install moduleNames:安装Node模块到本地目录node_modules下。
- npm install < name > -g:将包安装到全局环境中。
- npm install < name > --save:安装的同时,将信息写入package.json中,项目路径中若是有package.json文件时,直接使用npm install方法就能够根据dependencies配置安装全部的依赖包,这样代码提交到git时,就不用提交node_modules这个文件夹了。
- npm install < name> --save-dev:安装的同时,将信息写入package.json中项目路径中若是有package.json文件时,直接使用npm install方法就能够根据devDependencies配置安装全部的依赖包,这样代码提交到git时,就不用提交node_modules这个文件夹了。
- npm uninstall moudleName:卸载node模块。