一 Node相关概念
(一) node是什么?
官方:Node.js是一个开源、跨平台的JavaScript运行时环境
Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境
(二) 为什么学习node?
前端开发的库都是以node包的形式进行管理,后面会学习大量的库
npm、yarn工具成为前端开发使用最多的工具
使用Node.js作为web服务器开发、中间件、代理服务器
服务端渲染,借助Node.js完成前后端渲染的同构应用
使用Node可以编写一些脚本工具
使用Electron来开发桌面应用程序,是需要使用Node
Node也可以开发API接口
(三) node环境中执行js文件的三种方式
第一种方式 找到对应的文件夹 输入cmd --> node 03(tab按键会自动补全)
第二种方式 在vscode找集成终端 node 03...(tab按键会自动补全) 把默认改为powershell 常用!
----安装 npm i -g nodemon 每次自动执行
----启动 nodemon 03... node 03..
第三种方式 通过code runner插件,安装过之后右上角出现小三角
(四) node环境中的全局变量
1.node环境里的 全局对象是global
在浏览器环境中 window是全局对象 globalThis 两个环境通用全局对象
PS:与浏览器中运行不同,声明的全局变量不挂载到global身上
console.log(global);
console.log(global == globalThis); //true
// 与浏览器中运行不同,声明的全局变量不挂载到global身上
var a = 1;
console.log(global.a); //undefined
2.__dirname 文件夹路径
console.log(__dirname);//d:\2402\第二阶段\Node\01-认识Node
3.__filename 文件路径
console.log(__filename);//d:\2402\第二阶段\Node\01-认识Node\04-node环境中的全局变量.js
4.process对象 node进程中的相关信息 了解
console.log(process);
5.立即执行定时器 宏任务
setTimeout setInterval
setImmediate
setImmediate(
function (...args) {
console.log(args);//[ 1, 2, 3 ]
},
1,
2,
3
)
二 模块化管理
(一) 模块
1)每一个js文件是一个模块
2)模块与模块之间互不影响
(二) CommonJs规范 exports--require
1.导出
-- a) exports.a = a
-- b) module.exports.a = a
-- c) module.exports = { a, b } 常用
2.导入
-- require("./a"); //得到对象
如:let a = require("./a.js");
3.省略文件名后缀时的查找机制
js --> json --> 文件夹下的index.js
(三) Esmodule规范 export--import
1.导出
a) export let a = 1;
b) let a = 1 export{a,b,c}
c) 整合 export * from '路径' 直接把路径文件中的所有东西导出去了
d) 整合 export default obj 如果一个文件中只有一个对象 可以采用默认的方式
2.导入
a)import {变量名} from '路径'
b)import {变量名 as 别名} from '路径'
a)import obj from '路径' (对应导出d)
3.注意
1)Esmodule规范不能在node环境中运行,需要在浏览器中运行(type="module")开启模块化处理
如:
且需要把环境跑起来??---用Open with Live Server
2)Esmodule规范没有查找机制,文件名需要补充完全
(四) 系统模块-http模块搭建服务器
// 使用原生node 搭配http模块 搭建了一个服务器
let http = require("http")
// 创建服务器
let server = http.createServer((req, res) => {
console.log("前端网页打开,代码执行");
console.log(res);
res.write("<h1>hello node</h1>")
})
// 配置服务器端口号3000-8000
server.listen(3001, function () {
console.log("后台服务器跑起来了");
})
// 需要监听服务器
server.on("request", () => {
console.log("请求过来了");
})
三 包管理工具
(一) npm
1.npm相关命令
where npm 查看npm安装在哪
npm -v 检测版本
- 生成配置文件
npm init 生成配置文件 -- package.json(项目的配置文件)
npm init -y 直接生成默认配置文件(无需手动配置)
-
下载安装各种所需资源 install
- 添加版本号 @,就是安装指定版本
-
npm i jquery@3.5.1 - 局部安装(默认安装最新版本)
-
npm i jquery npm i vue npm install vue - 全局安装 -g
-
npm i vue -g
自动生成package.json,锁定依赖(包)版本,下载的第三方依赖会放在node_modules
-
生产依赖VS开发依赖
- 生产依赖:开发需要 上线的时候也需要
- npm i jquery -S或npm i jquery --save
- 开发依赖:开发过程中项目所需要的依赖 项目上线不能用
- npm i jquery -D或npm i jquery --save-dev
2.用nrm换源
作用:换源 默认下载的是国外 需要把下载切到国内
操作步骤:
- npm i nrm 安装完之后就代表有nrm这个工具
- nrm ls 利用这个工具去cmd里面可以查看下载源列表
- nrm use taobao (有些依赖taobao源是会有一些问题的还需要切换到官方源)
切换到官方源:nrm use npm
- npm i 重新安装依赖
(二) yarn
首先全局安装yarn 指令:npm i yarn -g
yarn 的相关命令
- yarn --v 检测是否安装成功 -- 常用
- yarn init 初始化,生成package.json -- 常用 相当于npm init -y
- yarn global add jquery 全局安装
- yarn global remove jquery 全局删除
- yarn add jquery 局部安装 -- 常用
- yarn add jquery --dev (相当于npm中的-D)
- yarn remove jquery 删除局部包文件
- yarn list 列出已经安装的包名 用的很少
- yarn info packageName 获取包的有关信息 几乎不用
- yarn 安装package.json中的所有依赖