From 5537667925d68021ad93109b8659f4281153d5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=96=B9=E6=97=AD?= <3402439200@qq.com> Date: Sun, 15 Mar 2026 21:22:52 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20260306.md | 32 +++++++++++++ 20260309.md | 27 +++++++++++ 20260311.MD | 107 +++++++++++++++++++++++++++++++++++++++++++ 20260312.MD | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 20260313.md | 64 ++++++++++++++++++++++++++ 5 files changed, 357 insertions(+) create mode 100644 20260306.md create mode 100644 20260309.md create mode 100644 20260311.MD create mode 100644 20260312.MD create mode 100644 20260313.md diff --git a/20260306.md b/20260306.md new file mode 100644 index 0000000..49d54fc --- /dev/null +++ b/20260306.md @@ -0,0 +1,32 @@ +# Node.js + +## 一、node.js简介 + +- **Node.js是一个基于Chrome V8引擎的JavaScript运行时,让JavaScript可以脱离浏览器在服务器端运行。** + +## 二、node.js特点 + +- **单线程、事件驱动、非阻塞I/O、高性能** + + + +## 三、题目 + +- 选择题:B,B,C,B,A + +什么是Node.js?请用一句话概括 + +**Node.js是一个基于Chrome V8引擎的JavaScript运行时,让JavaScript可以脱离浏览器在服务器端运行 + +### 解释非阻塞I/O + +相当于对于电脑接口或者其他事件的异步程序 + +### 为什么适合做聊天 + +1非阻塞I/O + +### Node.js和传统后端语言(如Java、PHP)相比,有什么优势 + +并发处理效率更高,开发效率更高,轻量启动快,实时性更好 + diff --git a/20260309.md b/20260309.md new file mode 100644 index 0000000..f810aa3 --- /dev/null +++ b/20260309.md @@ -0,0 +1,27 @@ +# node.js开发环境 + +## 一、命令行工具 + +| 工具 | 命令 | 作用 | +| ---- | ----------------- | ---------- | +| npm | `npm install xxx` | 安装Node包 | + +## 二、查看版本 + +| 命令 | 作用 | +| ------- | ----------- | +| node -v | 查看版本 | +| npm -v | 查看npm版本 | + +## 三、基本命令 + +| 命令 | 作用 | +| ----------------------------- | ---------------------------- | +| npm -v | 查看npm版本 | +| npm init -y(-y是创建默认项目) | 初始化项目,创建package.json | +| npm install <包名> | 安装指定包 | +| npm install | 安装所有依赖 | +| npm uninstall <包名> | 卸载指定包 | +| npm list | 查看已安装的包 | +| node add.js (文件名) | 运行项目 | + diff --git a/20260311.MD b/20260311.MD new file mode 100644 index 0000000..530d0f6 --- /dev/null +++ b/20260311.MD @@ -0,0 +1,107 @@ +# node.js模块系统 + +## 一、模块系统 + +### 1.1 模块化好处 + +| 好处 | 说明 | +| ------------ | -------------------- | +| **代码复用** | 写一次,处处使用 | +| **便于维护** | 修改一处,不影响全局 | +| **命名空间** | 避免变量名冲突 | +| **清晰结构** | 一眼看出项目组成 | + +### 1.2 两种模块化系统 + +- CommonJS +- ES Module + +## 二、模块系统 + +### 2.1 模块系统 1 -----CommonJS + +- CommonJS是Node.js默认的模块系统,使用 `require()` 引入模块,使用 `module.exports` 导出模块。 + +### 2.2 导出模块 --- module.exports + +```js +// 方式1:导出单个函数或值 +module.exports = function() { + console.log('这是一个函数'); +}; + +// 方式2:导出对象(包含多个功能) +module.exports = { + add: function(a, b) { + return a + b; + }, + name: '张三', + PI: 3.14159 +}; + +// 方式3:直接给exports添加属性 +exports.add = function(a, b) { return a + b; }; +exports.subtract = function(a, b) { return a - b; }; +``` + + + +### 2.3 引入模块 - require + +```js +// 引入自定义模块(相对路径或绝对路径) +const myModule = require('./myModule'); +const math = require('./math'); + +// 引入Node.js内置模块(直接写模块名) +const fs = require('fs'); +const path = require('path'); + +// 引入npm包(直接写包名) +const express = require('express'); +``` + +### 2.4 模块系统 1 ----- ES Modules + +- ES Modules(ESM)是JavaScript官方的模块系统,从ES6引入。需要在 `package.json` 中设置 `"type": "module"` 或者使用 `.mjs` 扩展名。 + +### 2.5 导出模块 --- module.exports + +```js +// 方式1:命名导出(可导出多个) +export const name = '张三'; +export function add(a, b) { return a + b; } +export function subtract(a, b) { return a - b; } + +// 方式2:批量导出 +const multiply = (a, b) => a * b; +const divide = (a, b) => a / b; +export { multiply, divide }; + +// 方式3:默认导出(一个模块只能有一个) +export default function() { + console.log('默认导出'); +} +``` + +### 2.6 引入模块 - require + +```js +// 引入命名导出 +import { add, subtract } from './math.mjs'; +console.log(add(2, 3)); // 5 + +// 引入并重命名 +import { add as sum } from './math.mjs'; +console.log(sum(1, 2)); // 3 + +// 引入默认导出 +import myFunc from './math.mjs'; +myFunc(); + +// 引入所有(作为对象属性) +import * as math from './math.mjs'; +console.log(math.add(1, 2)); // 3 +``` + +选择题:B、D、B、C/D、B、B、B \ No newline at end of file diff --git a/20260312.MD b/20260312.MD new file mode 100644 index 0000000..eef719e --- /dev/null +++ b/20260312.MD @@ -0,0 +1,127 @@ +# node.js课堂笔记 + +## 一、模块系统 + +### 1.1 模块化好处 + +| 好处 | 说明 | +| ------------ | -------------------- | +| **代码复用** | 写一次,处处使用 | +| **便于维护** | 修改一处,不影响全局 | +| **命名空间** | 避免变量名冲突 | +| **清晰结构** | 一眼看出项目组成 | + +### 1.2 两种模块化系统 + +- CommonJS +- ES Module + +## 二、模块系统 + +### 2.1 模块系统 1 -----CommonJS + +- CommonJS是Node.js默认的模块系统,使用 `require()` 引入模块,使用 `module.exports` 导出模块。 + +### 2.2 导出模块 --- module.exports + +```js +// 方式1:导出单个函数或值 +module.exports = function() { + console.log('这是一个函数'); +}; + +// 方式2:导出对象(包含多个功能) +module.exports = { + add: function(a, b) { + return a + b; + }, + name: '张三', + PI: 3.14159 +}; + +// 方式3:直接给exports添加属性 +exports.add = function(a, b) { return a + b; }; +exports.subtract = function(a, b) { return a - b; }; +``` + + + +### 2.3 引入模块 - require + +```js +// 引入自定义模块(相对路径或绝对路径) +const myModule = require('./myModule'); +const math = require('./math'); + +// 引入Node.js内置模块(直接写模块名) +const fs = require('fs'); +const path = require('path'); + +// 引入npm包(直接写包名) +const express = require('express'); +``` + +### 2.4 模块系统 1 ----- ES Modules + +- ES Modules(ESM)是JavaScript官方的模块系统,从ES6引入。需要在 `package.json` 中设置 `"type": "module"` 或者使用 `.mjs` 扩展名。 + +### 2.5 导出模块 --- module.exports + +```js +// 方式1:命名导出(可导出多个) +export const name = '张三'; +export function add(a, b) { return a + b; } +export function subtract(a, b) { return a - b; } + +// 方式2:批量导出 +const multiply = (a, b) => a * b; +const divide = (a, b) => a / b; +export { multiply, divide }; + +// 方式3:默认导出(一个模块只能有一个) +export default function() { + console.log('默认导出'); +} +``` + +### 2.6 引入模块 - require + +```js +// 引入命名导出 +import { add, subtract } from './math.mjs'; +console.log(add(2, 3)); // 5 + +// 引入并重命名 +import { add as sum } from './math.mjs'; +console.log(sum(1, 2)); // 3 + +// 引入默认导出 +import myFunc from './math.mjs'; +myFunc(); + +// 引入所有(作为对象属性) +import * as math from './math.mjs'; +console.log(math.add(1, 2)); // 3 +``` + +## 三、语义化版本号 + +### 3.1 版本号符号 + +**版本号格式**:【主版本.次版本.补丁版本】 + +- **^** :兼容更新 +- **~ **:补丁更新 +- *****: 最新版本 +- **无符号** : 固定版本 + +### 3.2 两个依赖 + +| 维度 | 生产依赖(dependencies) | 开发依赖(devDependencies) | +| ------------ | --------------------------------- | ----------------------------- | +| **作用** | 运行时必需,缺则报错 | 仅开发 / 构建需要,不影响运行 | +| **示例** | express、react、axios | webpack、eslint、jest | +| **安装命令** | `npm i <包名>` | `npm i -D <包名>` | +| **生产环境** | `npm install --production` 会安装 | 会被忽略 | + +选择题:B、D、B、C/D、B、B、B \ No newline at end of file diff --git a/20260313.md b/20260313.md new file mode 100644 index 0000000..35bf4cd --- /dev/null +++ b/20260313.md @@ -0,0 +1,64 @@ +# node.js命令行工具 + +## 一、常见命令行工具 + +| 工具 | 命令 | 作用 | +| ------- | --------------------- | ----------- | +| npm | `npm install xxx` | 安装Node包 | +| git | `git commit -m "xxx"` | 版本控制 | +| vue | `vue create my-app` | 创建Vue项目 | +| nodemon | `nodemon app.js` | 自动重启 | + +## 二、命令行参数 + +### 1.1 获取命令行参数 - process.argv + +#### 1.1.1 概念说明 + +`process.argv` 是 Node.js 中的一个**全局数组**,用于获取通过命令行传递给 Node.js 进程的参数。它是开发命令行工具的基础,能让脚本根据不同输入执行不同逻辑。 + +#### 1.1.2 基本结构 + +`process.argv` 数组的元素固定分为两部分: + +- **第 0 个元素**:Node.js 可执行文件的绝对路径(如 `C:\Program Files\nodejs\node.exe`)。 +- **第 1 个元素**:当前执行的 JavaScript 脚本文件的绝对路径(如 `D:\project\app.js`)。 +- **第 2 个及之后的元素**:用户在命令行中传递的自定义参数(如 `node app.js arg1 arg2` 中的 `arg1`、`arg2`)。 + +### 1.2 文件系统操作模块 - FS + +#### 1.2.1 概念说明 + +`fs` 是 Node.js 中的**核心文件系统模块**(File System 的缩写),用于对文件和目录进行读写、创建、删除等操作。它是 Node.js 处理本地文件的基础,支持同步和异步两种操作模式。 + +#### 1.2.2 核心方法与基本使用 + +`fs` 模块提供了丰富的 API,以下是最常用的文件读写方法: + +- readFileSync(同步读取文件) + + :同步读取文件内容,会阻塞后续代码执行,直到文件读取完成。 + + - 示例:`const data = fs.readFileSync('data.txt', 'utf8');`(读取 data.txt 文件,指定编码为 utf8) + +- writeFile(异步写入文件) + + :异步写入文件内容,不会阻塞后续代码执行,通过回调函数处理结果。 + + - 示例:`fs.writeFile('data.txt', 'Hello World', (err) => { if (err) throw err; });`(向 data.txt 写入内容,完成后执行回调) + +### 1.3 交互输入 + +- readline(原生提问);inquirer 库(强大的交互式问答) + +## 四、命令速查表 + +``` +node todo.js add <内容> # 添加待办 +node todo.js list # 列出待办 +node todo.js done <编号> # 标记完成 +node todo.js delete <编号> # 删除待办 +node todo.js clear # 清空待办 +node todo.js help # 显示帮助 +``` + -- Gitee From 0f8450f15b8bbcb2f02601ee406b778fd9c32aab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=96=B9=E6=97=AD?= <3402439200@qq.com> Date: Sun, 15 Mar 2026 21:56:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20260306.md => "\351\231\210\346\226\271\346\227\255/20260306.md" | 0 20260309.md => "\351\231\210\346\226\271\346\227\255/20260309.md" | 0 20260311.MD => "\351\231\210\346\226\271\346\227\255/20260311.MD" | 0 20260312.MD => "\351\231\210\346\226\271\346\227\255/20260312.MD" | 0 20260313.md => "\351\231\210\346\226\271\346\227\255/20260313.md" | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename 20260306.md => "\351\231\210\346\226\271\346\227\255/20260306.md" (100%) rename 20260309.md => "\351\231\210\346\226\271\346\227\255/20260309.md" (100%) rename 20260311.MD => "\351\231\210\346\226\271\346\227\255/20260311.MD" (100%) rename 20260312.MD => "\351\231\210\346\226\271\346\227\255/20260312.MD" (100%) rename 20260313.md => "\351\231\210\346\226\271\346\227\255/20260313.md" (100%) diff --git a/20260306.md "b/\351\231\210\346\226\271\346\227\255/20260306.md" similarity index 100% rename from 20260306.md rename to "\351\231\210\346\226\271\346\227\255/20260306.md" diff --git a/20260309.md "b/\351\231\210\346\226\271\346\227\255/20260309.md" similarity index 100% rename from 20260309.md rename to "\351\231\210\346\226\271\346\227\255/20260309.md" diff --git a/20260311.MD "b/\351\231\210\346\226\271\346\227\255/20260311.MD" similarity index 100% rename from 20260311.MD rename to "\351\231\210\346\226\271\346\227\255/20260311.MD" diff --git a/20260312.MD "b/\351\231\210\346\226\271\346\227\255/20260312.MD" similarity index 100% rename from 20260312.MD rename to "\351\231\210\346\226\271\346\227\255/20260312.MD" diff --git a/20260313.md "b/\351\231\210\346\226\271\346\227\255/20260313.md" similarity index 100% rename from 20260313.md rename to "\351\231\210\346\226\271\346\227\255/20260313.md" -- Gitee