diff --git "a/\345\210\230\346\224\277/20260316-\345\237\272\346\234\254\345\206\205\347\275\256\346\250\241\345\235\227.md" "b/\345\210\230\346\224\277/20260316-\345\237\272\346\234\254\345\206\205\347\275\256\346\250\241\345\235\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..b1acdaa3d4042f05515499c9a8e448deeb88eff9 --- /dev/null +++ "b/\345\210\230\346\224\277/20260316-\345\237\272\346\234\254\345\206\205\347\275\256\346\250\241\345\235\227.md" @@ -0,0 +1,57 @@ +### 笔记 +``` +Node.js 内置模块是 Node.js 运行时自带的、无需额外安装即可使用的核心功能模块。这些模块提供了基础的系统功能,如文件操作、网络通信、进程管理等,是 Node.js 开发的基础工具。 + +与需要通过 npm 安装的第三方模块不同,内置模块可以直接通过 require() 函数加载使用,例如: + +const fs = require('fs'); // 文件系统模块 +const http = require('http'); // HTTP 模块 + +1. fs (文件系统模块) +fs 模块提供了与文件系统交互的 API,支持同步和异步两种操作方式。 + +主要功能: + +读写文件 +创建/删除目录 +监视文件变化 +获取文件信息 + +2. path (路径模块) +path 模块提供处理文件和目录路径的工具函数,可以跨平台使用。 + +常用方法: + +path.join() - 连接路径 +path.resolve() - 解析为绝对路径 +path.basename() - 获取文件名 +path.extname() - 获取文件扩展名 + +3.http (HTTP 模块) +http 模块允许 Node.js 作为 HTTP 服务器或客户端运行。 + +主要功能: + +创建 HTTP 服务器 +发起 HTTP 请求 +处理 HTTP 请求和响应 + +4. events (事件模块) +events 模块提供了事件驱动的编程接口,是 Node.js 异步编程的基础。 + +核心概念: + +EventEmitter 类 +事件监听 (on) +事件触发 (emit) + +5. os (操作系统模块) +os 模块提供与操作系统相关的实用方法和属性。 + +常用功能: + +获取 CPU 信息 +获取内存信息 +获取网络接口信息 +获取系统临时目录 +``` \ No newline at end of file diff --git "a/\345\210\230\346\224\277/20260318-\345\237\272\346\234\254\345\206\205\347\275\256\346\250\241\345\235\227 2.md" "b/\345\210\230\346\224\277/20260318-\345\237\272\346\234\254\345\206\205\347\275\256\346\250\241\345\235\227 2.md" new file mode 100644 index 0000000000000000000000000000000000000000..593cc81aed1bc84436a980d6ed4ccbda8703ce7c --- /dev/null +++ "b/\345\210\230\346\224\277/20260318-\345\237\272\346\234\254\345\206\205\347\275\256\346\250\241\345\235\227 2.md" @@ -0,0 +1,30 @@ +### 笔记 +``` +内置模块的优势 +高性能:与 Node.js 运行时紧密集成 +稳定性:经过严格测试,可靠性高 +无需安装:开箱即用 +跨平台:在不同操作系统上表现一致 +文档完善:官方文档详细 +``` + +### 练习 +``` +1.请解释console.log和console.error的区别。 +log打印普通日志 +error打印错误日志,控制台展示为红色文本 + +2.process.argv返回的数组包含哪些内容?请举例说明。 +返回的是在控制台中输入的文本 + +3.Buffer和普通数组有什么区别? +Buffer是Node.js中特有的数据类型。所有的元素的字节在0-255 + +4.__dirname和process.cwd()有什么区别? +__dirname是当前文件所在目录 +cwd()是当前工作目录 + +5.path.join()和path.resolve()有什么区别? +join()为拼接路径 +resolve()是绝对路径 +``` \ No newline at end of file diff --git "a/\345\210\230\346\224\277/20260319-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\345\210\230\346\224\277/20260319-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..38c3406bc16b4dc9356e4088a9bdf97222e32c19 --- /dev/null +++ "b/\345\210\230\346\224\277/20260319-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" @@ -0,0 +1,48 @@ +### 笔记 +``` +导入 FS 模块 +首先,你需要导入 fs 模块: + +var fs = require("fs") +异步和同步 +Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFileSync()。 + +写入文件 +异步写入文件: + +fs.writeFile('example.txt', 'Hello, World!', (err) => { + if (err) { + console.error('Error writing file:', err); + return; + } + console.log('File written successfully'); +}); +同步写入文件: + +try { + fs.writeFileSync('example.txt', 'Hello, World!'); + console.log('File written successfully'); +} catch (err) { + console.error('Error writing file:', err); +} +``` + +### 简答题 +``` +1. 请解释同步方法和异步方法的区别。 +同步在代码运行错误时阻塞后续代码执行 +异步在不阻塞代码,操作在后台运行 + +2. fs.readFile和fs.readFileSync有什么区别? +一个是异步,一个是同步 + +3. 如何实现文件的追加写入? +使用fs.appendFileSync() + +4. 什么是流式处理?它适合什么场景? +将大文件分批读取/写入/处理 +适合大文件或持续数据 + +5. 如何监听文件的变化? +使用fs.watch() +``` \ No newline at end of file diff --git "a/\345\210\230\346\224\277/20260320-http\346\250\241\345\235\227.md" "b/\345\210\230\346\224\277/20260320-http\346\250\241\345\235\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..83c979d4b5c2ae4628cb4bad59203a7c4c6fc005 --- /dev/null +++ "b/\345\210\230\346\224\277/20260320-http\346\250\241\345\235\227.md" @@ -0,0 +1,66 @@ +### 笔记 +``` +使用 http.request 发起 HTTP 请求 + +http.request 是一个通用方法,支持自定义 HTTP 方法(如 GET、POST、PUT 等)。以下是一个 POST 请求的示例: + +const http = require('http'); +const postData = JSON.stringify({ +title: 'Hello', +body: 'World', +userId: 1 +}); + +const options = { +hostname: 'jsonplaceholder.typicode.com', +port: 80, +path: '/posts', +method: 'POST', +headers: { +'Content-Type': 'application/json', +'Content-Length': Buffer.byteLength(postData) +} +}; + +const req = http.request(options, (res) => { +console.log(`状态码: ${res.statusCode}`); +console.log(`响应头: ${JSON.stringify(res.headers)}`); + +let data = ''; +res.on('data', (chunk) => { +data += chunk; +}); + +res.on('end', () => { +console.log(`响应数据: ${data}`); +}); +}); + +req.on('error', (e) => { +console.error(`请求出错: ${e.message}`); +}); + +// 发送请求数据 +req.write(postData); +req.end(); +``` +### 练习 +``` +1. 请解释req和res分别代表什么 +req:表示客户端的请求,只读 +res:表示服务器的响应,可写 + +2. http.createServer的回调函数接收哪些参数? +res req + +3. 如何获取URL中的查询参数? +使用req.url + +4. res.writeHead和res.setHeader有什么区别? +writeHead:一次性设置状态码和多个响应头,并发送响应头 +setHeader:单独设置单个响应头 + +5. http.get和http.request有什么区别? +get:仅支持GET请求,自动调用`req.end()` +request:支持所有HTTP方法,必须手动调用`req.end()` +``` \ No newline at end of file