一、初识Node.js
1.基于Chrome
V8
引擎的JS
运行环境
2.V8
引擎:Chrome
的JS
解析引擎,C++
开发,单线程,可独立运行,开源
3.运行环境:1.类似虚拟机,提供JS
在服务端运行的环境
2.JS
工具库:扩展了JS
的功能
二、环境安装
1.Node.js
必须先安装再使用 -- 有很多版本
2.安装方式:1.下载包安装:添加到环境变量
版本更新:重新下载安装
2.NVM
:多版本切换
3.查看是否安装成功:node -v
--- 命令行
在目标文件夹:Shift+鼠标右键
可以快速找到PowerShell
三、REPL环境
1.类似开发者工具中的console
2.进入REPL
环境:打开命令行:node
+回车
3.退出REPL
环境:Ctrl+C
或 process.exit()
或 .exit
4.执行JS
文件:node demo.js
或 node demo
(文件默认为JS
)
四、全局作用域成员
1.global
:全局环境,类似window
2.globalThis
:ES6
新增的全局对象,浏览器端指向window
,服务端指向global
3.process
:获取当前的node
进程信息
4.console
:Node
内置的控制台模块,类似客户端的console
5.Buffer
:用于处理二进制数据
五、Babel
1.ES6
转码器:将ES6
转为ES5
-- 可以使用ES6
编写程序,然后将代码转为ES5
以适应老版本浏览器
2.安装:$ npm install --save-dev @babel/core
3.配置文件:.babelrc
-- 项目根目录
{ "presets": ["@babel/env"], //转码规则 "plugins": [] //插件 }
4.转码规则:官方提供,可通过npm
安装
$ npm install --save-dev @babel/preset-env
5.命令行转码工具:$ npm install --save-dev @babel/cli
$ npx babel es6.js -- 转码之后输出到控制台 $ npx babel es6.js -o es5.js - 将es6.js文件转码之后写入到es5.js npx:npm5之后新增的功能,帮助调用局部安装的工具
Node.js核心优势
1.单线程
2.非阻塞式I/O
-- 异步编程-》错误优先(回调函数的第一个参数是error
)
模块化结构
1.使用CommonJS
规范 -- 运行时加载,同步加载
2.Node.js
模块分类:1.核心模块:平台自带
2.第三方模块:包
3.文件模块:自己开发的
3.Module
对象:Node.js
内部提供,所有的模块都是module
的实例
4.导出:exports
或 module.exports
exports.name = val; module.exports = {name:val} 注意:exports为module.exports别名,导出最终以module.exports为准
5.导入:require()
规则一:以./或../开头的路径以当前文件所在的文件夹开始寻找模块 require("./module.js"); //加载当前目录下的module.js模块 require("./module"); //省略扩展名则按js文件执行 规则二:以/开头则以系统根目录(当前文件所在的目录)开始寻找模块 require("/module/demo.js"); //加载当前文件所在目录根目录根据路径开始查找 规则三:不以./或../或/开头 1.以核心模块加载 require("http"); 2.从当前目录开始依次向上查找node_modules目录 require("cal.js"); 规则四:路径是一个文件夹 1.指向文件夹package.json中main字段指向的文件 require("./path") 2.不存在package.json或者没有main字段,指向index.js