diff --git a/readme.md b/readme.md deleted file mode 100644 index 4c7fce1a6d837b4222a7ace58bcfe14ff9050cf9..0000000000000000000000000000000000000000 --- a/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -## net前端班笔记 - -上课录屏地址:https://www.alipan.com/s/R85ZxiyYWBg \ No newline at end of file diff --git "a/\344\275\231\350\276\211/20240229.md" "b/\344\275\231\350\276\211/20240229.md" new file mode 100644 index 0000000000000000000000000000000000000000..20b3c69ca33771d7d32822639a1308120b34a595 --- /dev/null +++ "b/\344\275\231\350\276\211/20240229.md" @@ -0,0 +1,12 @@ +# nodejs下载 +1. 傻瓜安装,默认是局部变量, + +# 一.npm和nvm + +npm:管理包的作用 + +nvm:管理node的版本 + +# 换原 +1. 直接百度,作用下载提速,使用国内镜像更快,一般get是下载set是查看 +2. nvm是版本切换,是外国老写的要翻墙,建议gethub上面有下载教程 \ No newline at end of file diff --git "a/\344\275\231\350\276\211/20240301.md" "b/\344\275\231\350\276\211/20240301.md" new file mode 100644 index 0000000000000000000000000000000000000000..82bf56e1a7163ecd0fdc9782abf8e40e736e16df --- /dev/null +++ "b/\344\275\231\350\276\211/20240301.md" @@ -0,0 +1,8 @@ +# 模块 +1. 作用引用别的js文件的代码 +```js +//创建这个准备被调用 +module.exports = "hello" +//调用 +require() //里面的是被调用的相对路径 +``` \ No newline at end of file diff --git "a/\344\275\231\350\276\211/20240302.md" "b/\344\275\231\350\276\211/20240302.md" new file mode 100644 index 0000000000000000000000000000000000000000..5e71d5a431f0d8a34219aa937fae898bf76e1bec --- /dev/null +++ "b/\344\275\231\350\276\211/20240302.md" @@ -0,0 +1,146 @@ +文件系统模块(`fs` 模块)是Node.js的一个核心模块,提供了一系列的API来与文件系统进行交互。这些API允许你在服务器上执行文件操作,比如读取、写入、修改、删除文件和目录等。`fs` 模块的方法基本上分为同步(阻塞)和异步(非阻塞)两种形式。 + +以下是一些关键的知识点以及相应的使用示例: + +### 1. 异步与同步 + +- **异步方法**:大多数 `fs` 方法都有异步版本,它们接受一个回调函数,当操作完成时,回调函数被调用。 +- **同步方法**:同步版本的方法会阻塞Node.js事件循环的继续执行,直到操作完成。同步方法的名称通常以 `Sync` 结尾。 + +### 2. 读取文件 + +- **异步读取**:使用 `fs.readFile()`。 +- **同步读取**:使用 `fs.readFileSync()`。 + +```js +javascript复制代码const fs = require('fs'); + +// 异步读取 +fs.readFile('example.txt', 'utf8', (err, data) => { + if (err) { + console.error(err); + return; + } + console.log(data); +}); + +// 同步读取 +try { + const data = fs.readFileSync('example.txt', 'utf8'); + console.log(data); +} catch (err) { + console.error(err); +} +``` + +### 3. 写入文件 + +- **异步写入**:使用 `fs.writeFile()`。 +- **同步写入**:使用 `fs.writeFileSync()`。 + +```js +javascript复制代码const fs = require('fs'); + +// 异步写入 +fs.writeFile('example.txt', 'Hello, world!', err => { + if (err) { + console.error(err); + return; + } + console.log('File has been written'); +}); + +// 同步写入 +try { + fs.writeFileSync('example.txt', 'Hello, world!'); + console.log('File has been written'); +} catch (err) { + console.error(err); +} +``` + +### 4. 追加数据到文件 + +- **异步追加**:使用 `fs.appendFile()`。 +- **同步追加**:使用 `fs.appendFileSync()`。 + +```js +javascript复制代码const fs = require('fs'); + +// 异步追加 +fs.appendFile('example.txt', ' Data appended.', err => { + if (err) throw err; + console.log('The "Data appended." was appended to file!'); +}); + +// 同步追加 +try { + fs.appendFileSync('example.txt', ' Data appended.'); + console.log('The "Data appended." was appended to file!'); +} catch (err) { + console.error(err); +} +``` + +### 5. 删除文件 + +- **异步删除**:使用 `fs.unlink()`。 +- **同步删除**:使用 `fs.unlinkSync()`。 + +```js +javascript复制代码const fs = require('fs'); + +// 异步删除 +fs.unlink('example.txt', err => { + if (err) throw err; + console.log('File deleted'); +}); + +// 同步删除 +try { + fs.unlinkSync('example.txt'); + console.log('File deleted'); +} catch (err) { + console.error(err); +} +``` + +### 6. 创建和删除目录 + +- **创建目录**:`fs.mkdir()` 和 `fs.mkdirSync()`。 +- **删除目录**:`fs.rmdir()` 和 `fs.rmdirSync()`(注意:目录必须为空才能删除)。 + +```js +javascript复制代码const fs = require('fs'); + +// 创建目录 +fs.mkdir('newDir', { recursive: true }, err => { + if (err) throw err; + console.log('Directory created'); +}); + +// 删除目录 +fs.rmdir('newDir', err => { + if (err) throw err; + console.log('Directory removed'); +}); +``` + +### 7. 监视文件变化 + +- 使用 `fs.watch()` 或 `fs.watchFile()`。 + +```js +javascript复制代码const fs = require('fs'); + +fs.watch('example.txt', (eventType, filename) => { + console.log(`Event type is: ${eventType}`); + if (filename) { + console.log(`Filename provided: ${filename}`); + } else { + console.log('Filename not provided'); + } +}); +``` + +这些示例概括了 `fs` 模块的一些基本用法。Node.js的 `fs` 模块非常强大,提供了更多的功能和选项来满足复杂的文件系统操作需求。在使用这些API时,建议参考Node.js官方文档,以获取最新和最全面的信息。 \ No newline at end of file diff --git "a/\344\275\231\350\276\211/20240303.md" "b/\344\275\231\350\276\211/20240303.md" new file mode 100644 index 0000000000000000000000000000000000000000..83aba6aad1a40412956ee14b1e595a4bb3dd4ad4 --- /dev/null +++ "b/\344\275\231\350\276\211/20240303.md" @@ -0,0 +1,51 @@ +### 递归 + +### 基础知识 +1. push()和concat()的区别,在合并数组时push不会平铺,concat()会平铺 +2. 详细一点解释,push()如果数组合并长度有且只会增加1 +3. concat() 平铺的话只会平铺一层,深层考虑实际当中还是要用递归去代替concat() +4. readdirSync() 是fs模块,指定的读取目录的内容,并且返回包含目录中所有条目名称的数组 + +### 保准用法 +```js +// 引入fs模块和path模块 +const fs = require('fs'); +const path = require('path'); + +/** + * 递归遍历目录 + * @param {string} dirPath 目录路径 + * @param {number} depth 当前深度,用于格式化输出 + */ +function listFilesAndDirectories(dirPath, depth = 0) { + // 获取目录内容 + let entries; + try { + entries = fs.readdirSync(dirPath, { withFileTypes: true }); + } catch (err) { + console.error(`Error reading directory ${dirPath}:`, err); + return; + } + + // 遍历目录内容 + entries.forEach(entry => { + // 创建缩进字符串,基于当前深度 + const indent = ' '.repeat(depth * 2); + + if (entry.isDirectory()) { + // 如果是目录,则打印目录名并递归调用函数 + console.log(`${indent}[Dir] ${entry.name}`); + listFilesAndDirectories(path.join(dirPath, entry.name), depth + 1); + } else if (entry.isFile()) { + // 如果是文件,则打印文件名 + console.log(`${indent}[File] ${entry.name}`); + } + }); +} + +// 调用函数,从当前目录开始遍历 +listFilesAndDirectories('.'); + +``` + +### 自我理解递归 \ No newline at end of file diff --git "a/\344\275\231\350\276\211/\346\200\273\347\273\223.md" "b/\344\275\231\350\276\211/\346\200\273\347\273\223.md" new file mode 100644 index 0000000000000000000000000000000000000000..4847637c09f0d489ede9e7528eebb45e535ace6d --- /dev/null +++ "b/\344\275\231\350\276\211/\346\200\273\347\273\223.md" @@ -0,0 +1 @@ +### 文件模块 diff --git "a/\350\200\201\350\203\241\346\235\245\344\271\237/20240301-node\345\256\211\350\243\205.md" "b/\350\200\201\350\203\241\346\235\245\344\271\237/20240301-node\345\256\211\350\243\205.md" deleted file mode 100644 index 61e49f6b04a70e4d5b737119aad617d6bd45dd48..0000000000000000000000000000000000000000 --- "a/\350\200\201\350\203\241\346\235\245\344\271\237/20240301-node\345\256\211\350\243\205.md" +++ /dev/null @@ -1,3 +0,0 @@ -## 怎么安装node - -如何修改镜像地址 \ No newline at end of file