Node.js | 青训营笔记

51 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第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模块。