diff --git "a/32\345\262\263\345\274\272/20240229-node\345\256\211\350\243\205.md" "b/32\345\262\263\345\274\272/20240229-node\345\256\211\350\243\205.md" deleted file mode 100644 index 9c8f3fb5da9619145e949628ed8dd4ee35fc0f78..0000000000000000000000000000000000000000 --- "a/32\345\262\263\345\274\272/20240229-node\345\256\211\350\243\205.md" +++ /dev/null @@ -1,43 +0,0 @@ -## 留白 -1. node与环境变量的关系 -2. 对node的基本操作 - -### Node - -1. 安装最新版本 -2. 配置环境 -3. - - 安装完成后,在Windows环境下,请打开命令提示符,然后输 入node -v,如果安装正常,你应该看到v7.6.0这样的输出: - - 继续在命令提示符输入node,此刻你将进入Node.js的交互环境(即进入终端输入node进入命令交互模式)。在交互环境下,你可以输入任意JavaScript语句 - - 要退出Node.js环境,连按两次Ctrl+C。 - -4. node.js前段项目常用命令 - 1. npm cache clean --force `进入项目目录,若之前进行过启动此次有更新,则清理换存` - 2. rm -rf node_modules/ `删除模块目录` - 3. npm install `安装依赖包` - 4. npm start `启动服务` -#### npm -`Node.js的包管理工具(package manager),要安装国内镜像包` - -```html - -`npm help`查看某个命令的帮助信息 -`npm init`初始化当前目录为一个包,并生成 package.json 文件 -`npm install` 根据项目中的package.json文件自动下载项目所需要的全部依赖 -`npm root [-g]` 查看本地或全局 node_modules 目录的位置 -`npm ping` 验证 registry 的连通性和身份验证 -`npm ls` 查看已安装包的列表 -`npm search [关键词]` 在 npm 仓库中搜索包 -`npm install [包名]` 安装指定的包 -`npm update [包名]` 更新指定的包 -`npm uninstall [包名]` 删除指定的包 - -``` - - - -#### nvm -`是一种用于管理多个主动节点.js版本的工具` -1. 使用简单的命令在本地下载任何远程长期支持 (LTS) 版本的 Node.js -2. 直接从命令行在 Node.js 的多个版本之间轻松切换。 -3. 设置别名以轻松在不同下载版本的 Node.js之间切换。 \ No newline at end of file diff --git "a/32\345\262\263\345\274\272/20240301-node\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md" "b/32\345\262\263\345\274\272/20240301-node\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md" deleted file mode 100644 index 20918345302e57e3ba194d1d68bb5f2c4287fb97..0000000000000000000000000000000000000000 --- "a/32\345\262\263\345\274\272/20240301-node\347\232\204\345\237\272\346\234\254\344\275\277\347\224\250.md" +++ /dev/null @@ -1,32 +0,0 @@ -### 模块调用 - -创建一个dome1.js -```html - -function fn01(){ //编写一个方法 fn01 - console.log("module01-fn01"); -} -function fn02(){ //编写一个方法 fn02 - console.log("module01-fn02"); -} - -//暴露接口 (方便使用) -module.exports = { - "fn01":fn01, - "fn02":fn02 -} - -``` -//创建一个dome2.js -```html -var dome1 = require("./dome2.js) `/使用 require引入模块,并申明一个变量来接收接口暴露的对象` - -dome1.fn01();//访问接口暴露的方法 - -``` -```html -在终端输入 node doem2.js - -会输出 module01-fn01 - -``` \ No newline at end of file diff --git "a/52 \351\273\204\347\216\211\346\235\255/20240229_\345\256\211\350\243\205Node.js.md" "b/52 \351\273\204\347\216\211\346\235\255/20240229_\345\256\211\350\243\205Node.js.md" deleted file mode 100644 index 0fe68aefa0dd5e6ac2443c41b0db14e61cd96bec..0000000000000000000000000000000000000000 --- "a/52 \351\273\204\347\216\211\346\235\255/20240229_\345\256\211\350\243\205Node.js.md" +++ /dev/null @@ -1,4 +0,0 @@ -下载安装包。访问Node.js官方网站,根据您的操作系统(Windows、macOS等)选择合适的安装包进行下载。12345 -安装Node.js。双击下载的安装包,按照提示进行操作。通常包括同意许可协议、选择安装目录、自定义安装选项等。 -配置环境变量。安装完成后,确保在系统的环境变量中正确配置了Node.js的路径。这通常包括将Node.js的安装目录添加到系统的Path环境变量中。 -验证安装成功。打开命令行窗口(Windows系统下通过快捷键Win+R,输入cmd打开),输入`node -v`和`npm -v`来检查Node.js和npm(Node.js的包管理器)的版本号。 \ No newline at end of file diff --git "a/52 \351\273\204\347\216\211\346\235\255/20240301\342\200\224\345\210\235\345\247\213\345\214\226\351\241\271\347\233\256.md" "b/52 \351\273\204\347\216\211\346\235\255/20240301\342\200\224\345\210\235\345\247\213\345\214\226\351\241\271\347\233\256.md" deleted file mode 100644 index 160fdee20cb041121100a003cdbccf9538efbe82..0000000000000000000000000000000000000000 --- "a/52 \351\273\204\347\216\211\346\235\255/20240301\342\200\224\345\210\235\345\247\213\345\214\226\351\241\271\347\233\256.md" +++ /dev/null @@ -1,23 +0,0 @@ -## 初始化项目 -npm init -exports 等于 module.exports,相当于在js文件头部,有一个module对象, - -module.exports = exports; -1 -exports是一个对象,所以可以exports多个值 - -module.exports 初始值为一个空对象 {} -exports 是指向的 module.exports 的引用 -require() 返回的是 module.exports 而不是 exports -```node.js -// 暴露.js -module.exports = function(name, age) { - this.name = name; - this.age = age; - this.about = function() { - console.log(this.name +' is '+ this.age +' years old'); - }; -}; -var A = require('暴露.js'); var a = newA(name, age); - -``` \ No newline at end of file diff --git "a/52 \351\273\204\347\216\211\346\235\255/20240302-\345\220\214\346\255\245\345\274\202\346\255\245.md" "b/52 \351\273\204\347\216\211\346\235\255/20240302-\345\220\214\346\255\245\345\274\202\346\255\245.md" deleted file mode 100644 index c0dfb0a277e389a3a25837dc5d9fbc397cf7204d..0000000000000000000000000000000000000000 --- "a/52 \351\273\204\347\216\211\346\235\255/20240302-\345\220\214\346\255\245\345\274\202\346\255\245.md" +++ /dev/null @@ -1,18 +0,0 @@ -## 读取 -```js -const fs = require("fs"); - -fs.readFile('example.js', (data) => { - // 进行业务逻辑的处理 -}); -``` -## 写入 -```js -var fs = require("fs") -fs.writeFile("hello.txt","hello syncFile",{flag: "a"},(err)=>{ - if(!err) { - console.log("写入成功"); - } -}) - -``` \ No newline at end of file diff --git "a/52 \351\273\204\347\216\211\346\235\255/20240303-\346\226\207\344\273\266\346\237\245\346\211\276.md" "b/52 \351\273\204\347\216\211\346\235\255/20240303-\346\226\207\344\273\266\346\237\245\346\211\276.md" deleted file mode 100644 index fbd14dc615c05aa2a45b866fdf8de13f4c36ab59..0000000000000000000000000000000000000000 --- "a/52 \351\273\204\347\216\211\346\235\255/20240303-\346\226\207\344\273\266\346\237\245\346\211\276.md" +++ /dev/null @@ -1,38 +0,0 @@ -```js -/** - * 读取目录 异步与同步 - */ - -console.log("读取文件异步操作"); -fs.readdir('fs测试readdir文件', (err, files) => { - console.log(err); - console.log(files); -}) - -console.log("读取文件同步操作"); -const readResult = fs.readdirSync('fs测试readdir文件') -console.log(readResult); - -``` -```js -const data = fs.readFileSync('练习.txt') -console.log(data.toString()); //同步代码需要转换为字符 - -fs.readFile('练习.txt', (data2) => { - console.log(data2); -}) - -``` -```js -/** - * 追加写入 异步与同步 - */ - -fs.appendFile('fs追加文本.txt', '追加内容,不会清空重写\n', (err) => { - if (err) throw err; - console.log("追加成功"); -}) -const fsAppendFileSync = fs.appendFileSync('fs追加文本.txt', '同步追加内容') -console.log("我是否成功了" + fsAppendFileSync); - -``` \ No newline at end of file diff --git "a/7\347\217\255\350\265\226\345\277\227\347\224\237/20240229_node\345\274\200\347\257\207.md" "b/7\347\217\255\350\265\226\345\277\227\347\224\237/20240229_node\345\274\200\347\257\207.md" deleted file mode 100644 index 50673aa125ab00bfe4e7000f3ea08b3e3742771d..0000000000000000000000000000000000000000 --- "a/7\347\217\255\350\265\226\345\277\227\347\224\237/20240229_node\345\274\200\347\257\207.md" +++ /dev/null @@ -1,55 +0,0 @@ -### 第一个node程序 -我们编写的JavaScript代码都是在浏览器中运行的,因此,我们可以直接在浏览器中敲代码,然后直接运行 - -在终端输入node,可进入node的交互模式,在Node交互式环境下,我们可以输入JavaScript代码并立刻执行。 - -此外,在命令行模式运行.js文件和在Node交互式环境下直接运行JavaScript代码有所不同。Node交互式环境会把每一行JavaScript代码的结果自动打印出来,但是,直接运行JavaScript文件却不会。 - -### 和环境变量的关系 -环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。 - -可以理解为一个系统级别的变量,用于临时或者永久的存储一些软件运行时的变量 - -一个环境变量包括: -1.名称 -2.参数值 - -#### nodejs程序中可以这样获取环境变量: -``` -console.log(process.env) -``` -输出: -``` -{ - PATH: '/usr/local/bin:/usr/bin', - JAVAHOME: '/usr/lib/Java', - ... -} -``` - -### node项目初始化 -1、新建项目文件夹Hello - -2、初始化项目 -``` -npm init -y -``` -3、安装express -``` -npm install express -``` -4、在Hello目录中创建一个名为app.js文件 -``` -const express = require("express"); -const app = express(); - -app.get("/",(req, res)=>{ - - res.send("hello"); -}) - -app.listen(3000, ()=>{ - console.log('Example app listening on port 3000!'); -}) -``` - diff --git "a/7\347\217\255\350\265\226\345\277\227\347\224\237/20240302_\346\250\241\345\235\227.md" "b/7\347\217\255\350\265\226\345\277\227\347\224\237/20240302_\346\250\241\345\235\227.md" deleted file mode 100644 index 5f8b9331bb6116e772c83566397bc69f6c30db21..0000000000000000000000000000000000000000 --- "a/7\347\217\255\350\265\226\345\277\227\347\224\237/20240302_\346\250\241\345\235\227.md" +++ /dev/null @@ -1,56 +0,0 @@ -### 模块 -为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少 -### 使用模块的好处 -大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。 - -```js -'use strict'; - -var s = 'Hello'; - -function greet(name) { - console.log(s + ', ' + name + '!'); -} - -module.exports = greet; -``` - -#### 要在模块中对外输出变量,用: - -``` -module.exports = variable; -``` - -#### 要引入其他模块输出的对象,用: - -``` -var foo = require('other_module'); -``` - -### 暴露 - -```js -function People(name, sex, age){ - this.name = name; - this.sex = sex; - this.age = age; -} -People.prototype = { - sayHello : function(){ - console.log(this.name + this.sex + this.age); - } -} -//此时,People就被视为构造函数,可以用new来实例化了 -module.exports = People; -``` - -```js -var People = require("./test/People.js"); -var xiaoming = new Peop -``` - -#### 总结 - - 某一个js文件中,提供了函数,供别人使用。 只需要暴露函数就行了; exports.msg=msg; - -某一个js文件,描述了一个类。 module.exports = People; diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240229-nodejs\345\256\211\350\243\205&\345\210\235\345\247\213\345\214\226.md" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240229-nodejs\345\256\211\350\243\205&\345\210\235\345\247\213\345\214\226.md" deleted file mode 100644 index d6e73ce444701841ef3b74f659f3a63a947fa57e..0000000000000000000000000000000000000000 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240229-nodejs\345\256\211\350\243\205&\345\210\235\345\247\213\345\214\226.md" +++ /dev/null @@ -1,18 +0,0 @@ -### 安装node.js - 1. 直接搜索node,找到官网 - 2. 下载...LTS -### npm(node包管理器) -管理项目中的依赖包 -### npm国内镜像换源地址 -https://registry.npmmirror.com/ -#### 换源命令 -npm config set registry https... -### node和环境变量的关系 -node.js可以通过操作系统的环境变量来获取配置信息,比如端口号等,这样能够方便地配置和管理应用程序的行为而不需要直接修改代码。 - -### node初始化项目 -1. 安装node.js -2. 新建项目文件夹 -3. 在项目文件夹中的命令面板输入npm init -4. 输入npm install (依赖包名,例如:koa),这时就会生成一个package.json和package-lock.json -##### package-lock.json是用来锁定一些依赖的版本 \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240301-\346\250\241\345\235\227.md" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240301-\346\250\241\345\235\227.md" deleted file mode 100644 index 8083ba637f4b676551e94481639861012a05860e..0000000000000000000000000000000000000000 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240301-\346\250\241\345\235\227.md" +++ /dev/null @@ -1,12 +0,0 @@ -### 模块是什么? -在Node.js中,模块是指封装了一组相关功能的JavaScript文件,用于组织和复用代码。 - -### 模块的作用 -模块的作用在于帮助组织代码、提高代码的可维护性和可复用性。通过模块化,可以将功能相关的代码封装到不同的模块中,降低了代码的耦合度,使得代码更易于理解和维护。另外,模块化也促进了代码的复用,因为一个模块中的功能可以被其他模块引入和重复使用。这种机制有助于提高开发效率,并且降低了开发过程中的错误和bug数量。 - -### 暴露模块 -module.exports = 当前模块要导出的内容 - -### 引入暴露模块的内容 -#### require()函数 -require() 用于加载模块,并将其导出的内容赋值给一个变量,以便在当前文件中使用。在引入自定义模块时,需要使用相对路径指定模块的位置。 \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240302-\346\250\241\345\235\227&\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240302-\346\250\241\345\235\227&\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index f250ec604f75c93a2bf078c711101ebc0724bc8c..0000000000000000000000000000000000000000 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240302-\346\250\241\345\235\227&\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,49 +0,0 @@ -### 在 ES6 模块系统中,export 用于声明模块中的变量、函数或对象是可以被其他模块使用的,而 import from 则用于从其他模块中引入这些导出的值。通过这种方式,可以更好地组织和管理 JavaScript 代码,使得模块之间的依赖关系更加清晰和可维护。 -### export导出模块 -```js -// 导出一个默认的值或对象 -export default myModule; - -// 导出一个或多个命名的值或对象 -export const var1 = value1; -export function func() { /* ... */ } -export class MyClass { /* ... */ } -``` - -### import from导入 -```js -// 导入默认导出的模块 -import myModule from './myModule'; - -// 导入命名导出的值或对象 -import { var1, func } from './myModule'; - -// 导入模块中的所有导出 -import * as myModule from './myModule'; -``` - -### 文件系统模块fs -fs 是 Node.js 中的核心模块之一,用于处理文件系统操作。fs 模块提供了一组丰富的 API,可以让你在 Node.js 环境下对文件进行读取、写入、修改、删除等操作 -#### 操作方法 -```js -// 引入fs模块 -const fs = require('fs'); - -// 异步读取文件 -fs.readFile('file.txt', 'utf-8', (err, data) => { - if (err) { - console.error(err); - return; - } - console.log(data); -}); - -// 异步写入文件 -fs.writeFile('file.txt', 'Hello, World!', (err) => { - if (err) { - console.error(err); - return; - } - console.log('File written successfully'); -}); -``` \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/20230303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227\350\241\245\345\205\205.md" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/20230303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227\350\241\245\345\205\205.md" deleted file mode 100644 index a5e2ab23067fcea73b05075682349b420a98e4b5..0000000000000000000000000000000000000000 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/20230303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227\350\241\245\345\205\205.md" +++ /dev/null @@ -1,46 +0,0 @@ -### fs.readdir() - -readdir函数用于读取一个目录,并返回一个包含目录中所有文件和子目录名称的数组。 - - -```js -const fs = require('fs'); - -// 读取当前目录下的文件和子目录 -fs.readdir('./', (err, files) => { - if (err) { - console.error(err); - return; - } - - // 打印文件和子目录的名称 - files.forEach((file) => { - console.log(file); - }); -}); -``` - -### fs.stat() - -用于获取文件或目录的详细信息,比如文件大小、创建时间、修改时间等。 - -```js -const fs = require('fs'); - -// 获取文件信息 -fs.stat('example.txt', (err, stats) => { - if (err) { - console.error(err); - return; - } - - // 打印文件的大小和最后修改时间 - console.log(`File size: ${stats.size} bytes`); - console.log(`Last modified: ${stats.mtime}`); -}); -``` - -### xxx()和xxxsync()的区别 -- 后面带有sync的均为同步操作,反之为异步操作 -- 当代码执行到异步的代码时,不会停下来等待执行完毕再往下执行,而是接着往下执行,同步则会停下来等 -- 同步的函数通常不需要回调函数 \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/app.js" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/app.js" deleted file mode 100644 index 19d0cdda7c090652f1895b6d8e317f0490e2d256..0000000000000000000000000000000000000000 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/app.js" +++ /dev/null @@ -1,70 +0,0 @@ -import fs from 'fs'; - -// fs.readdir('./', (err, data) => { -// if (err) { -// console.log(err); -// } else { -// console.log(data); -// } -// }) - -/* -一、读取指定文件夹,列出所有的文件或者文件夹 -二、遍历这些文件或者文件夹,判断是否文件夹,是,则继续调用读取文件夹的方法 -三、一直重复第二步,直到将所有的内容都列出 - -*/ - - -function listAllFile(filePath) { - let resArr = []; - /* - 1.判断是否为文件夹,如果不是,则直接返回文件名称 - 2.如果是文件夹,则列出其下所有的内容(文件、文件夹) - 3.如果列出的内容中某个项目是文件夹,则继续深入列出其下所有的内容 - */ - - // 使用同步方法,获得指定路径的状态 - let fileStat = fs.statSync(filePath); - // 利用状态,判断是否为文件 - let isPathFile = fileStat.isFile(); - - // 如果是文件,则直接放入结果数组 - if (isPathFile) { - //调用数组的push方法,将一个对象插入到数组的尾部 - resArr.push(filePath); - - - - - } else { - // 如果是文件夹,则利用readdirSync方法,读取目录中的所有的内容(包含文件和文件夹) - let arr = fs.readdirSync(filePath); - - - // 解决pp下空文件夹ii没被记录 - if(!arr.length){ - resArr=resArr.concat(filePath); - } - - - // 遍历目录下的所有内容项目,再利用当前方法listAllFile来处理对应路径的信息(重点理解) - arr.forEach(item => { - // 判断filePath最后一个字符是否为/ - let lastStrIs = filePath.lastIndexOf('/') === filePath.length - 1; - // filePath如果最后一个是/,那么就和item直接拼接就可以,否则需要再加一个/ - let tmpPath = lastStrIs ? filePath + item : `${filePath}/${item}`; - // 拿到处理好的路径以后,直接调用listAllfile函数继续处理,拿到的结果tmpArr和原结果resArr合并, - // 再重新赋值给原结果resArr - let tmpArr = listAllFile(tmpPath); - resArr=resArr.concat(tmpArr); - }) - } - // 返回最终结果 - return resArr; - -} - - -let arr=listAllFile('./'); -console.log(arr); \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/33.txt" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/33.txt" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/pp/66.txt" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/kk/pp/66.txt" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/package.json" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/package.json" deleted file mode 100644 index 2bfb583a34e91271e74a22532c924f51dc2810ec..0000000000000000000000000000000000000000 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/package.json" +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "node_demo", - "version": "5.3.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "type": "module" -} diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/uu.txt" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/uu.txt" deleted file mode 100644 index 176a7edd45d14bf0b14fa83afe303b49b2721465..0000000000000000000000000000000000000000 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/uu.txt" +++ /dev/null @@ -1 +0,0 @@ - 长城长 \ No newline at end of file diff --git "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/yy.txt" "b/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/yy.txt" deleted file mode 100644 index 6804950329b24c624753ba4d95cfef7d4d9d0e40..0000000000000000000000000000000000000000 --- "a/7\347\217\255\351\273\204\345\244\251\344\274\237/20240303-\344\275\234\344\270\232&\347\254\224\350\256\260/node_demo/node_demo/yy.txt" +++ /dev/null @@ -1 +0,0 @@ -明天会更好 \ No newline at end of file diff --git "a/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240229__Node\345\256\211\350\243\205npm\346\267\273\345\212\240.md" "b/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240229__Node\345\256\211\350\243\205npm\346\267\273\345\212\240.md" deleted file mode 100644 index bbb201ee97a9e2aba7ec3040b47363190ecadddf..0000000000000000000000000000000000000000 --- "a/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240229__Node\345\256\211\350\243\205npm\346\267\273\345\212\240.md" +++ /dev/null @@ -1,28 +0,0 @@ -# Node.js基础介绍 -JavaScript 运行环境:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它使得 JavaScript 可以在服务器端运行而不仅仅局限于浏览器端。这意味着开发人员可以使用 JavaScript 来构建后端应用程序。 - -事件驱动和非阻塞I/O:Node.js 使用事件驱动的架构,利用单线程和非阻塞I/O 模型来处理大量并发请求。这使得 Node.js 在处理高性能和高可伸缩性的应用时表现出色。 - -模块化:Node.js 鼓励使用模块化的方式组织代码,通过 CommonJS 或 ES6 模块系统来管理依赖关系。Node.js 提供了一套强大的模块系统,使得开发者可以轻松地编写可重用的代码模块。 - -包管理工具 npm:Node.js 附带了 npm(Node Package Manager),这是一个强大的包管理工具,用于安装、发布和管理 Node.js 模块。借助 npm,开发者可以轻松地集成各种第三方模块和工具。 - -异步编程:Node.js 采用异步编程模型,通过回调函数、Promise 和 async/await 等机制来处理异步操作,避免了传统同步编程中的阻塞问题,使得应用程序能够更高效地处理 I/O 密集型任务。 - -构建网络应用:由于 Node.js 专注于高性能的 I/O 操作,因此它非常适合构建网络应用,比如 Web 服务器、RESTful API 服务、实时通讯应用等。 -# npm 的一些基础用法 -安装包:使用 npm install 命令来安装包。例如,要安装 Express 框架,可以运行 npm install express。 - -全局安装:有些包是命令行工具,需要全局安装,可以使用 -g 标志。例如,npm install -g nodemon 可以全局安装 nodemon 工具。 - -安装特定版本:如果需要安装特定版本的包,可以在包名后面加上 @。例如,npm install express@4.17.1 会安装 Express 版本为 4.17.1。 - -更新包:要更新已安装的包到最新版本,可以运行 npm update 命令。 - -查看已安装的包:使用 npm list 命令可以查看当前项目中已安装的包列表。 - -package.json 文件:package.json 是用来描述项目及其依赖关系的文件。可以使用 npm init 命令来创建一个新的 package.json 文件。 - -安装开发依赖:可以使用 --save-dev 标志将包添加到开发依赖中。例如,npm install jest --save-dev 会将 Jest 添加为开发依赖。 - -卸载包:使用 npm uninstall 命令可以卸载指定的包。 \ No newline at end of file diff --git "a/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240301__.md" "b/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240301__.md" deleted file mode 100644 index 3e8b75c71a03cc332f56c078a95aaf1cb7e4f91a..0000000000000000000000000000000000000000 --- "a/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240301__.md" +++ /dev/null @@ -1,9 +0,0 @@ -## 笔记 -创建node 文件 npm init -model.exports = '' -主文件引用 let xx = reauire('路径') -快捷键 终端输入 npm i --save @types/node - -环境变量的安装右键“此电脑”→属性→高级系统设置→环境变量→系统变量中的Path→编辑>导入node.js安装根目录 - -npm config set registry registry.npmmirror.com \ No newline at end of file diff --git "a/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240302__\345\274\202\346\255\245\345\220\214\346\255\245.md" "b/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240302__\345\274\202\346\255\245\345\220\214\346\255\245.md" deleted file mode 100644 index 500ade3a8f5d8c1a166ba278c670cbf3c5a8864a..0000000000000000000000000000000000000000 --- "a/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240302__\345\274\202\346\255\245\345\220\214\346\255\245.md" +++ /dev/null @@ -1,39 +0,0 @@ -## 笔记 -#### 同步异步 -同步意味着双方要相互等待、相互依赖, -而异步意味着双方相互独立、各行其是。 - - -#### gitee - -git init - 初始化仓库。 -git add . - 添加文件到暂存区。 -git commit - 将暂存区内容添加到仓库中。 -#提交与修改 - -git add 添加文件到暂存区 -git status 查看仓库当前的状态,显示有变更的文件。 -git diff 比较文件的不同,即暂存区和工作区的差异。 -git commit 提交暂存区到本地仓库。 -git reset 回退版本。 -git rm 将文件从暂存区和工作区中删除。 -git mv 移动或重命名工作区文件。 - -提交日志 -git log 查看历史提交记录 -git blame 以列表形式查看指定文件的历史修改记录 -远程操作 -git remote 远程仓库操作 -git fetch 从远程获取代码库 -git pull 下载远程代码并合并 -git push 上传远程代码并合并 - -#### 模块 -读取 -fs.readFile('','uft-8',(err,data)=>{ - if(err){ - - } -}) -写入 -fs.writeFile('',''(flag:'a'),function(err,datastr){}) \ No newline at end of file diff --git "a/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240303__Node\346\226\207\344\273\266\350\257\273\345\217\226\345\206\231\345\205\245.md" "b/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240303__Node\346\226\207\344\273\266\350\257\273\345\217\226\345\206\231\345\205\245.md" deleted file mode 100644 index 683e1a7393b596833d555a9bb49a58e933129553..0000000000000000000000000000000000000000 --- "a/\344\273\226\351\207\215\351\230\263/\347\254\224\350\256\260/20240303__Node\346\226\207\344\273\266\350\257\273\345\217\226\345\206\231\345\205\245.md" +++ /dev/null @@ -1,26 +0,0 @@ -## 笔记 -### statSync -fs.statSync()方法用于异步返回有关给定文件路径的信息。 -返回的fs.Stat对象具有多个字段和方法,以获取有关文件的更多详细信息。 - -fs.statSync( path, options ) -path:它包含必须检查的文件的路径。它可以是字符串,缓冲区或URL。 -options:该对象可用于指定将影响输出的可选参数。它具有一个可选参数: - -bigint:它是一个布尔值,它指定fs.Stats对象中返回的数值是否为bigint。默认值为false - -### readdirSync -fs.readdirSync()方法用于同步读取给定目录的内容。 -该方法返回一个数组,其中包含目录中的所有文件名或对象。 - options参数可用于更改从方法返回文件的格式 - - 用法: - -fs.readdirSync( path, options ) - -path:它保存必须从中读取内容的目录路径。它可以是字符串,缓冲区或URL。 -options:它是一个对象,可用于指定将影响方法的可选参数。它具有两个可选参数: - -encoding:它是一个字符串值,该字符串值指定给回调参指定的文件名使用哪种编码。默认值为“ utf8”。 - -withFileTypes:这是一个布尔值,它指定是否将文件作fs.Dirent对象返回。默认值为“ false” \ No newline at end of file diff --git "a/\344\276\257\345\235\244\351\241\272/20240229-Node\345\256\211\350\243\205.md" "b/\344\276\257\345\235\244\351\241\272/20240229-Node\345\256\211\350\243\205.md" deleted file mode 100644 index ea22f21584160420f650660d30bea1e8461f5163..0000000000000000000000000000000000000000 --- "a/\344\276\257\345\235\244\351\241\272/20240229-Node\345\256\211\350\243\205.md" +++ /dev/null @@ -1,41 +0,0 @@ -## 安装Node.js和npm - 由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境。 - -### 安装Node.js - - 从Node.js官网下载对应平台的安装程序,安装完成后,在Windows环境下,请打开命令提示符,然后输入node -v,如果安装正常,你应该看到类似于v7.6.0这样的输出 - - - 继续在命令提示符输入node,此刻你将进入Node.js的交互环境。在交互环境下,你可以输入任意JavaScript语句,例如100+200,回车后将得到输出结果。 - - - 要退出Node.js环境,连按两次Ctrl+C。 - -### npm是什么? -npm其实是Node.js的包管理工具(package manager)。 - - npm已经在Node.js安装的时候顺带装好了。我们在命令提示符或者终端输入npm -v,应该看到类似的输出: - -C:\>npm -v -4.1.2 -如果直接输入npm,你会看到类似下面的输出: - -C:\> npm - -Usage: npm - -where is one of: - -### Npm的一些常用指令: - -1. npm -v :查看npm当前版本 - -2. npm install :会根据项目中的package。json文件自动下载项目所需的全部依赖 - -3. npm install -g npm :将npm更新到当前最新版本 - -4. npm update 包名:更新指定包 - -5. npm uninstall 包名:卸载指定包 - -6. npm config list:查看配置信息 - -7. npm init -y :初始化一个新项目 - -8. npm init -h :查询帮助 \ No newline at end of file diff --git "a/\344\276\257\345\235\244\351\241\272/20240301-\346\250\241\345\235\227.md" "b/\344\276\257\345\235\244\351\241\272/20240301-\346\250\241\345\235\227.md" deleted file mode 100644 index e8187d22ae61ce26f54c6e5e44e10c7e8fb85205..0000000000000000000000000000000000000000 --- "a/\344\276\257\345\235\244\351\241\272/20240301-\346\250\241\345\235\227.md" +++ /dev/null @@ -1,26 +0,0 @@ -## 模块 -在Node环境中,一个.js文件就称之为一个模块(module)。 - - 例如,我们编写了一个hello.js文件,这个hello.js文件就是一个模块,模块的名字就是文件名(去掉.js后缀),所以hello.js文件就是名为hello的模块。 - ``` - function fn(){ - log(...); - module.exports=fn;//fn可以是对象函数等 - } - ``` - ``` - let fn = require('./路径'); - fn(); - ``` - -## 结论 - - 要在模块中对外输出变量,用: -``` -module.exports = variable; -``` - - 输出的变量可以是任意对象、函数、数组等等。 - - - 要引入其他模块输出的对象,用: -``` -var foo = require('other_module'); -``` - - 引入的对象具体是什么,取决于引入模块输出的对象。 diff --git "a/\344\276\257\345\235\244\351\241\272/20240302-\345\237\272\346\234\254\346\250\241\345\235\227.md" "b/\344\276\257\345\235\244\351\241\272/20240302-\345\237\272\346\234\254\346\250\241\345\235\227.md" deleted file mode 100644 index 770900c02c51e4c273e2850d27008de298b38708..0000000000000000000000000000000000000000 --- "a/\344\276\257\345\235\244\351\241\272/20240302-\345\237\272\346\234\254\346\250\241\345\235\227.md" +++ /dev/null @@ -1,70 +0,0 @@ -## 基本模块 - -### global -在Node.js环境中,唯一的全局对象,进入Node.js交互环境可以直接输入: -``` -global.console.log(44); -conole.log(33); -``` - -### process -process是Node.js提供的一个对象,代表当前的Node.js进程 -``` -console.log(process) -``` - -## 文件系统模块 - -### fs - -Node.js内置的fs模块就是文件系统模块,负责读写文件。 - -和所有其它JavaScript模块不同的是,fs模块同时提供了异步和同步的方法。 - - - 回顾一下什么是异步方法。因为JavaScript的单线程模型,执行IO操作时,JavaScript代码无需等待,而是传入回调函数后,继续执行后续JavaScript代码。 - - - 而同步的IO操作则需要等待函数返回 - - -### 异步读文件 -按照JavaScript的标准,异步读取一个文本文件的代码如下: -``` -'use strict'; - -var fs = require('fs'); - -fs.readFile('sample.txt', 'utf-8', function (err, data) { - if (err) { - console.log(err); - } else { - console.log(data); - } -}); -``` -请注意,sample.txt文件必须在当前目录下,且文件编码为utf-8。 - -异步读取时,传入的回调函数接收两个参数,当正常读取时,err参数为null,data参数为读取到的String。当读取发生错误时,err参数代表一个错误对象,data为undefined。这也是Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果。 - - -由于err是否为null就是判断是否出错的标志,所以通常的判断逻辑总是: -``` -if (err) { - // 出错了 -} else { - // 正常 -} -``` - -### 写文件 - -将数据写入文件是通过fs.writeFile()实现的,追加写入 -``` -'use strict'; - -var fs = require('fs'); - -fs.writeFile('output.txt', '顺', '{flag:a}',function (err) { - console.log(err) -}); -``` -writeFile()的参数依次为文件名、数据和回调函数。 \ No newline at end of file diff --git "a/\345\215\240\347\277\212\345\206\233/2024.02.29-Node\345\237\272\347\241\200.md" "b/\345\215\240\347\277\212\345\206\233/2024.02.29-Node\345\237\272\347\241\200.md" deleted file mode 100644 index 45feae69f28d1506d8ae313918f6f155d469e7b9..0000000000000000000000000000000000000000 --- "a/\345\215\240\347\277\212\345\206\233/2024.02.29-Node\345\237\272\347\241\200.md" +++ /dev/null @@ -1,22 +0,0 @@ -### node 下载 - -- 官网下载 LTS 长期版本即可 -- node -v 查看 node 版本 - -### npm - -- npm 管理包 -- npm -v 查看包版本 - -### nvm - -- nvm 管理 node 版本与切换 - -### node 与环境变量的关系 - -- 如果遇到没有 node 命令等,需配置环境变量 - -### node 初始化一个项目 - -- npm i 自动下载所有依赖 -- 可能需要更改服务器地址 diff --git "a/\345\215\240\347\277\212\345\206\233/2024.03.01-Node\346\250\241\345\235\227.md" "b/\345\215\240\347\277\212\345\206\233/2024.03.01-Node\346\250\241\345\235\227.md" deleted file mode 100644 index aa360a6b94c61eb63a5b83832765b6b28bcc14e8..0000000000000000000000000000000000000000 --- "a/\345\215\240\347\277\212\345\206\233/2024.03.01-Node\346\250\241\345\235\227.md" +++ /dev/null @@ -1,15 +0,0 @@ -### 模块是什么? - --在 Node.js 中,模块是指封装了一组相关功能的 JavaScript 文件,用于组织和复用代码。 - -### 模块的作用 - -1.帮助组织代码 2.提高代码的可维护性 3.可复用性 - -### 暴露模块 - --module.exports = 当前模块要导出的内容 - -### 引入暴露模块的内容 - --require() 函数用于加载模块,需要使用相对路径指定模块的位置。 diff --git "a/\345\215\240\347\277\212\345\206\233/2024.03.02-Node\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\345\215\240\347\277\212\345\206\233/2024.03.02-Node\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index bc3f3c210bc06ba17ad038e8a5e8c21eeb0a12af..0000000000000000000000000000000000000000 --- "a/\345\215\240\347\277\212\345\206\233/2024.03.02-Node\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,34 +0,0 @@ -## fs 解释 - -Node.js 内置的 fs 模块就是文件系统模块,负责读写文件。 - -## 写入内容(异步) - -写入一个为 tt.txt 的文本内容如下: - -```js -let fsx = require("fs"); - -//fs.writeFile('文件名称','写入内容',回调函数) -fsx.writeFile("写文件名称.text", "写内容", (err) => { - if (err) { - console.log(err); - return; - } - console.log("成功!"); -}); -``` - -## 读入内容(异步) - -```js -let fs = require("fs"); -//fs.readFile('文件名称','编码格式',回调函数) -fs.readFile("写文件名称.text", "utf-8", (err, data) => { - if (err) { - console.log(err); - return; - } - console.log(data); -}); -``` diff --git "a/\345\215\240\347\277\212\345\206\233/2024.03.03-Node\350\257\273\345\217\226\346\226\207\344\273\266.md" "b/\345\215\240\347\277\212\345\206\233/2024.03.03-Node\350\257\273\345\217\226\346\226\207\344\273\266.md" deleted file mode 100644 index cafbdeb5c2ff3362496074d154b793fcb3e286d2..0000000000000000000000000000000000000000 --- "a/\345\215\240\347\277\212\345\206\233/2024.03.03-Node\350\257\273\345\217\226\346\226\207\344\273\266.md" +++ /dev/null @@ -1,49 +0,0 @@ -# writeFileSync 同步写入 - -- 语法:fs.writeFileSync(路径,写入文件) - -``` -例子: -let fs = require("fs") -let a = fs.writeFileSync("./xxx","眼鼻嘴",{flag:"a"}) -console.log(a) -``` - -# readFileSync 同步读取 - -- 语法:fs.readFileSyn("路径","utf-8") - -``` -例子: -let fs =require("fs") -let b = fs.readFileSync("./xxx","utf-8") -console.log(b) -``` - -# readdir 异步读取文件夹/readdirSync 读取文件夹 - -- 返回结果为一个数组 -- readdir 语法:fs.readdir(path 路径,callback(err,files)) - -``` -例子: -let fs = require("fs") -fs.readdir("./",function(err,data){ - if(err){ - console.log(err) - } - console.log(data) -}) -``` - -- readdirSync 语法:fs.readdir("path 路径",options) - -``` -let fs = require("fs") -let c = fs.readdirSync("./") -console.log(c) -``` - -- fs.stat 获取文件的信息 -- isFile 检查是否是文件 -- isDirectory 检测是否是文件夹 diff --git "a/\345\215\242\345\273\272\347\245\245/20240229-\350\256\244\350\257\206\343\200\201\344\270\213\350\275\275\343\200\201\351\205\215\347\275\256nodejs.md" "b/\345\215\242\345\273\272\347\245\245/20240229-\350\256\244\350\257\206\343\200\201\344\270\213\350\275\275\343\200\201\351\205\215\347\275\256nodejs.md" deleted file mode 100644 index 084b3afa137ded95ca4c57cb5bd19fbc521485b9..0000000000000000000000000000000000000000 --- "a/\345\215\242\345\273\272\347\245\245/20240229-\350\256\244\350\257\206\343\200\201\344\270\213\350\275\275\343\200\201\351\205\215\347\275\256nodejs.md" +++ /dev/null @@ -1,19 +0,0 @@ -## nodejs 软件下载 - -- 网址搜索nodejs进官网下载 -- node -v 查看安装的版本号(确定是否安装成功) -- 环境变量 -- 有多版本的时候配置环境变量 - + 在下载的node根目录中添加两个文件夹(node-global和node-cache) - + 在系统变量中添加NODE_PATH并设置地址为node内的node_modules文件夹 - + 设置用户中path中的node路径为自己创建的node-global -### npm资源包管理器 -- npm -h 帮助 -- npm install+依赖 添加依赖项 -- npm i 反向下载依赖项 -- npm config get registry 获取当前镜像地址 -- npm config set cache + “地址” 修改为此地址 -### 完成第一个项目 -- npm init 回车(可按照提示填写内容) -- npm init -y 直接生成一个默认的内容 -![Alt text](img/2024-03-02_173448.png) \ No newline at end of file diff --git "a/\345\215\242\345\273\272\347\245\245/20240301-\346\250\241\346\235\277.md" "b/\345\215\242\345\273\272\347\245\245/20240301-\346\250\241\346\235\277.md" deleted file mode 100644 index 1dd4796a2fccfc7e91af5dcb77da0629f71c3753..0000000000000000000000000000000000000000 --- "a/\345\215\242\345\273\272\347\245\245/20240301-\346\250\241\346\235\277.md" +++ /dev/null @@ -1,6 +0,0 @@ -## 模板的认识 -> 模板是可以多重引用的文件形式(尽可能不超过3重引用) -- 将文件内的内容暴露出来 - + module.exports=暴露的内容 -- 引用模板内容 - + 定义一个变量保存引入的模板内容=require('地址') \ No newline at end of file diff --git "a/\345\215\242\345\273\272\347\245\245/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\343\200\201\345\220\214\346\255\245\345\274\202\346\255\245.md" "b/\345\215\242\345\273\272\347\245\245/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\343\200\201\345\220\214\346\255\245\345\274\202\346\255\245.md" deleted file mode 100644 index 267bcc1e446a65af677fa9198a2fe9932f1176ab..0000000000000000000000000000000000000000 --- "a/\345\215\242\345\273\272\347\245\245/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\343\200\201\345\220\214\346\255\245\345\274\202\346\255\245.md" +++ /dev/null @@ -1,53 +0,0 @@ -## 基本模块 -### global -- nodejs中的全局对象 -> global.console -### process -> 内存中运行中的进程(其中的信息较多) -### 文件模块 -- 同步处理 -> 单线程处理事件 -- 异步处理 -> 多线程处理事件 -### nodejs对文件的操作 -```js - //写入文件 -fs.writeFile("test.txt", "hello world!", function(err) { - if(err) { - console.log(err); - } - console.log("写入成功"); -}); - -//向文件追加内容(追加flag:'a';默认修改flag:'w') -fs.appendFile("test.txt", "人间失格", {flag:'a'}, function(err) { - if(err) { - console.log(err); - return false; - } - console.log('写入成功!!!'); -}); - -//读取文件 -fs.readFile("test.txt", function(err, data) { - if(err) { - console.log(err); - return false; - } - console.log(data.toString()); -}); - -//unlink删除文件 -fs.unlink('test.txt',function(err) { - if(err){ - console.log(err); - return false; - } - console.log('删除文件成功'); -}); - -//判断文件/目录是否存在 -fs.access('test.txt',(err)=>{ - console.log(err ? '目录/文件不存在': '文件存在,可以进行读写'); -}); -``` \ No newline at end of file diff --git "a/\345\215\242\345\273\272\347\245\245/img/2024-03-02_173448.png" "b/\345\215\242\345\273\272\347\245\245/img/2024-03-02_173448.png" deleted file mode 100644 index f34ecbaf5b43f0a573965de7f4534402bd19b64e..0000000000000000000000000000000000000000 Binary files "a/\345\215\242\345\273\272\347\245\245/img/2024-03-02_173448.png" and /dev/null differ diff --git "a/\345\220\264\350\257\227\350\214\265/2024.02.29-1.Node\347\232\204\346\237\245\350\257\242\345\222\214\347\274\226\345\206\231.md" "b/\345\220\264\350\257\227\350\214\265/2024.02.29-1.Node\347\232\204\346\237\245\350\257\242\345\222\214\347\274\226\345\206\231.md" deleted file mode 100644 index d567b420d2dbc563925fd3e44fd8667bba053b8d..0000000000000000000000000000000000000000 --- "a/\345\220\264\350\257\227\350\214\265/2024.02.29-1.Node\347\232\204\346\237\245\350\257\242\345\222\214\347\274\226\345\206\231.md" +++ /dev/null @@ -1,58 +0,0 @@ -## Node.js - -### 查询node.js版本和npm版本【在vs code终端查询或者命令提示窗查询】 - - node -v [v20.11.1] - - npm -v [9.8.1] - -### 获取当前的镜像地址 - - npm config get registry - -### 切换新的镜像地址 - - npm config set registry 新的镜像地址 - - 官方的镜像地址:https://registry.npmjs.org/ - - 国内的镜像地址:https://registry.npmmirror.com/ - -### 退出node.js环境 - - 连按两次Ctrl+C - -### 什么是npm - - npm是Node.js的包管理工具(package manager) - -### 编写一个node程序 - -在vs code先打开一个新创建的文件,然后创建终端npm成功之后再npm install koa,在同级目录下,新创建一个.js文件在里面编写一些打印代码,在终端写node .js文件的名称 - - npm - - npm install koa - -.js文件里面的代码: - - 'use strict'; - - console.log('软件技术5班'); - -也可以保存为别的名字,比如first.js,但是必须要以.js结尾。此外,文件名只能是英文字母、数字和下划线的组合 - -如果当前目录下没有first.js这个文件,运行node first.js就会报错: - - C:\Workspace>node first.js - module.js:338 - throw err; - ^ - Error: Cannot find module 'C:\Workspace\first.js' - at Function.Module._resolveFilename - at Function.Module._load - at Function.Module.runMain - at startup - at node.js - -报错的意思就是,没有找到first.js这个文件,因为文件不存在。这个时候,就要检查一下当前目录下是否有这个文件了 \ No newline at end of file diff --git "a/\345\220\264\350\257\227\350\214\265/2024.03.01-2.Node\347\232\204\345\210\235\345\247\213\345\214\226\344\270\216\346\250\241\345\235\227.md" "b/\345\220\264\350\257\227\350\214\265/2024.03.01-2.Node\347\232\204\345\210\235\345\247\213\345\214\226\344\270\216\346\250\241\345\235\227.md" deleted file mode 100644 index 4d92be401326b3f9a92197fff77b09b7d26ac418..0000000000000000000000000000000000000000 --- "a/\345\220\264\350\257\227\350\214\265/2024.03.01-2.Node\347\232\204\345\210\235\345\247\213\345\214\226\344\270\216\346\250\241\345\235\227.md" +++ /dev/null @@ -1,82 +0,0 @@ -## Node.js - -### 命令提示窗切换根目录 - - 语法格式:目录名称+: - - 例如:c: d: - -### 命令提示窗切换目录 - - 语法格式:cd 目录名称 - - 例如:cd Desktop/签到表 - -### 如何用node初始化一个项目 - - npm init - -### 模块 - -使用模块的优点是提高了代码的可维护性,还可以避免函数名和变量名冲突 - -例如: - -我们在第一个first.js文件中输入代码,如下: - -注:first.js文件就是一个模块,模块的名字就是文件名(去掉.js后缀),所以first.js文件就是名为first的模块 - -``` -'use strict'; - -let tr=require('./one'); - -function greet(name) -{ - console.log('广东'+name+tr); -} - -module.exports=greet; -``` - -注:函数greet()是我们在first模块中定义的,最后一行它的意思是把函数greet作为模块的输出暴露出去,这样其他模块就可以使用greet函数了 - -然后在第二个hello.js文件中输入代码,如下: - -``` -// 引入first模块 -let greet=require('./first'); - -greet(); -``` - -注:引入的模块作为变量保存在greet变量中,那greet变量到底是什么东西?其实变量greet就是在first.js中我们用module.exports = greet;输出的greet函数。所以,hello.js就成功地引用了first.js模块中定义的greet()函数,接下来就可以直接使用它了 - -注:在使用require()引入模块的时候,请注意模块的相对路径。因为main.js和hello.js位于同一个目录,所以我们用了当前目录. - - - -注:如果只写模块名会发生什么 - - - var greet = require('hello'); - -则Node会依次在内置模块、全局模块和当前模块下查找hello.js,你很可能会得到一个错误 - -``` -module.js - throw err; - ^ -Error: Cannot find module 'hello' - at Function.Module._resolveFilename - at Function.Module._load - ... - at Function.Module._load - at Function.Module.runMain -``` - - - -除此之外还可以再写多一个.js文件也就是在第三个one.js文件中输入代码,如下: - - module.exports='厉害'; \ No newline at end of file diff --git "a/\345\220\264\350\257\227\350\214\265/2024.03.02-3.\345\237\272\346\234\254\346\250\241\345\235\227\344\270\216\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\345\220\264\350\257\227\350\214\265/2024.03.02-3.\345\237\272\346\234\254\346\250\241\345\235\227\344\270\216\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index d47e5b999bb7cf6dc7032333df285186dc527100..0000000000000000000000000000000000000000 --- "a/\345\220\264\350\257\227\350\214\265/2024.03.02-3.\345\237\272\346\234\254\346\250\241\345\235\227\344\270\216\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,172 +0,0 @@ -## 提交笔记步骤 - -1.加入班级组织 - -2.fork笔记仓库 - -3.克隆个人远程仓库到本地,形成本地仓库 - -找一个路径,执行如下命令: - - git clone 远程仓库地址 - -4.使用vscode打开仓库(本质就是一个文件夹) - -5.在这个本地仓库当中,新建文件夹,命名为自己的姓名 - -6.在上述建好的文件夹中,开始创建笔记文件,命名格式为:20240302-js模块.md - -7.如果完成了笔记(其实没有完成也可以),提交(本地提交commit),推送到远程仓库(是指远程个人仓库) - -可以提交以后,马上推送 -也可以多次提交,只推送一次 - -① 提交 - -将修改的内容放入暂存区,命令如下(执行这个命令,最好确认是在仓库的根地址执行的): - - git add . - -将放入暂存区的修改,本地提交,命令如下: - - git commit -m "备注的内容" - -② 推送 - - git push - -8.将远程个人仓库的修改内容,合并到班级仓库,通过提交PR申请,通过后即可完成 - -## 基本模块 - -### global - -JavaScript有且仅有一个全局对象,在浏览器中,叫window对象。而在Node.js环境中,也有唯一的全局对象,叫global,进入Node.js交互环境,可直接输入: - - global.console - - Console - { - log: [Function: bound ], - info: [Function: bound ], - warn: [Function: bound ], - error: [Function: bound ], - dir: [Function: bound ], - time: [Function: bound ], - timeEnd: [Function: bound ], - trace: [Function: bound trace], - assert: [Function: bound ], - Console: [Function: Console] - } - -例如: - - global.console.log(55)与console.log(55)是一样的 - -## 文件系统模块 - -### fs - -Node.js内置的fs模块就是文件系统模块,负责读写文件 - -写入在Node.js中,文件写入可以使用同步和异步两种方式进行。同步写入会阻塞程序执行,直到写入操作完成,而异步写入允许程序继续执行其他任务,不会阻塞 - -在大多数情况下,建议使用异步写入,以提高程序的性能和响应速度 - -### 异步读文件 - -#### ① fs.writeFile() - -fs.writeFile()方法用于异步写入文件内容,如果文件不存在,则会创建文件;如果文件已存在,它会覆盖原有内容 - - 语法格式:fs.writeFile(filename,data,[options],callback); - -● filename:要写入的文件的路径 - -● data:要写入的数据 - -● options:可选参数,可以设置编码方式、文件标志等 - -● callback:回调函数,用于处理写入操作完成后的操作 - -例如: - -``` -// 引入fs模块 -var fs = require('fs'); - -fs.writeFile('aa.txt','write','utf-8',function(err) -{ - if(err) - { - console.error(err); - } - else - { - console.log('文件写入成功'); - } -}); - -``` - -#### ② fs.readFile() - -使用fs.readFile()方法,向其传入文件路径、编码、以及会带上文件数据(以及错误)进行调用的回调函数 - -例如: - -``` -'use strict'; - -// 引入fs模块 -var fs = require('fs'); - -fs.readFile('sample.txt', 'utf-8', function(err, data) -{ - if(err) - { - console.log(err); - } - else - { - console.log(data); - } -}); -``` - -请注意,sample.txt文件必须在当前目录下,且文件编码为utf-8 - -异步读取时,传入的回调函数接收两个参数,当正常读取时,err参数为null,data参数为读取到的String。当读取发生错误时,err参数代表一个错误对象,data为undefined。这也是Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果。 - -#### ③ fs.appendFile() - -fs.appendFile()方法用于异步追加数据到文件末尾,如果文件不存在,则会创建文件。这是一个常用于日志记录的方法 - -语法格式:fs.appendFile(filename,data,[options],callback); - -● filename:要追加的文件的路径 - -● data:要追加的数据 - -● options:可选参数,可以设置编码方式、文件标志等 - -● callback:回调函数,用于处理追加操作完成后的操作 - -例如: - -``` -// 引入fs模块 -var fs = require('fs'); - -fs.appendFile('aa.txt','append','utf-8',function(err) -{ - if(err) - { - console.error(err); - } - else - { - console.log('数据追加成功'); - } -}); -``` \ No newline at end of file diff --git "a/\345\224\220\345\244\251\345\250\245/20240229-Node\345\256\211\350\243\205\344\273\245\345\217\212\345\237\272\347\241\200.md" "b/\345\224\220\345\244\251\345\250\245/20240229-Node\345\256\211\350\243\205\344\273\245\345\217\212\345\237\272\347\241\200.md" deleted file mode 100644 index 783a83154781bb180ba8af929eb2a08183eaa815..0000000000000000000000000000000000000000 --- "a/\345\224\220\345\244\251\345\250\245/20240229-Node\345\256\211\350\243\205\344\273\245\345\217\212\345\237\272\347\241\200.md" +++ /dev/null @@ -1,24 +0,0 @@ -## 版本测试 -- node -v 版本测试 -- node -v 版本里面包管理器,用于管理项目中的依赖包 -+- nvm 用于管理node版本的管理器——用于范围:测试,用不同的版本写node -- ping registry.npmjs.org -- ping registry.npmmirror.com相对于上速度较快 -+ npm换源(镜像网址):https://registry.npmjs.org/ - -## 搭建框架 -npm install koa 框架 -npm i 根据所指文件下载依赖包 -npm i koa -npm config grt registry 获得地址 -npm config set registry -cd .. -node 命名名称(就可以输出内容) - -## Node环境变量 -- 当关闭环境变量系统中的node.js时就无法运行 -## 初始化一个项目 -npm init -h 寻求帮助 -- 还可以从:百度,人工智能 - - diff --git "a/\345\224\220\345\244\251\345\250\245/20240301-Node\346\220\255\345\273\272Node\345\274\200\345\217\221\347\216\257\345\242\203\345\222\214\346\250\241\345\235\227.md" "b/\345\224\220\345\244\251\345\250\245/20240301-Node\346\220\255\345\273\272Node\345\274\200\345\217\221\347\216\257\345\242\203\345\222\214\346\250\241\345\235\227.md" deleted file mode 100644 index 7f872b4963b64622a18a767a37ec6a2d515ec921..0000000000000000000000000000000000000000 --- "a/\345\224\220\345\244\251\345\250\245/20240301-Node\346\220\255\345\273\272Node\345\274\200\345\217\221\347\216\257\345\242\203\345\222\214\346\250\241\345\235\227.md" +++ /dev/null @@ -1,18 +0,0 @@ -## 搭建node开发环境 -- 通过npm init命令可以更方便初始化一个npm项目 -launch.js调试文件 - -## 模版 -- 暴露模版 -```js -function fn(name){ - console.log("你好,"+{name}); -} -module.exports=fn;可以为:字符串,对象,数组 -``` - -- 引入 -```js -let fn = require(地址); -fn('柯南'); -``` diff --git "a/\345\224\220\345\244\251\345\250\245/20240302-Node\345\237\272\346\234\254\346\250\241\345\235\227.md" "b/\345\224\220\345\244\251\345\250\245/20240302-Node\345\237\272\346\234\254\346\250\241\345\235\227.md" deleted file mode 100644 index d10c4dea2569c87d50b1de9dc95188a49b5992cf..0000000000000000000000000000000000000000 --- "a/\345\224\220\345\244\251\345\250\245/20240302-Node\345\237\272\346\234\254\346\250\241\345\235\227.md" +++ /dev/null @@ -1,44 +0,0 @@ -## 基本模块 -```js -import {abc} from './you.js'; -console.log(abc); -abc(); -—————————————— -let str='abc'; -function abc(){ - console.log(555); -} -export {abc} ——>module.export=abc; -``` -### global基本模块 -```js -global.console.log(44); -console.log(44); -console.warm(555); -console.error(666); -``` -### fs -Node.js内置的fs模块就是文件系统模块,负责读写文件 -同步:串联(一步一步)fs.writeFileSync() -异步:并联(同时前进)fs.writeFile() -- 引入 -```js -//引入 -var fs=require('fs'); -//异步:读 -fs.readFile('./tt.txt','utf-8',(err,data)=>{ - if(err){ - console.log(err); - }else{ - console.log(data); - } -}); -//写 -fa.weiteFile('tt.txt','哈哈哈哈哈哈哈','utF-8',function(err){ - console.log(err); -}) -//追加 -fa.weiteFile('tt.txt','/n中华人民共和国/n',{flag:'a'}function(err){ - console.log(err); -}) -``` \ No newline at end of file diff --git "a/\345\224\220\345\244\251\345\250\245/20240303-Node\345\220\214\346\255\245\346\250\241\345\235\227.md" "b/\345\224\220\345\244\251\345\250\245/20240303-Node\345\220\214\346\255\245\346\250\241\345\235\227.md" deleted file mode 100644 index d6284e0d96c8610a04034c60f30881de1ee27914..0000000000000000000000000000000000000000 --- "a/\345\224\220\345\244\251\345\250\245/20240303-Node\345\220\214\346\255\245\346\250\241\345\235\227.md" +++ /dev/null @@ -1,41 +0,0 @@ -## package.json文件 -当项目中存在package.json文件,说明这个项目是一个标准的node项目 -npm init入门用法,一步一步提示 -npm innit -y 高级用法 - -- 实现同步:在package.json中添加type:module - -## 'utf-8'和toString含义用法一样,随意用其中一个也可以实现同样的效果 -```js -import fs from 'fs'; -fs.readFile('uu.txt','utf-8',function(err,data){ - if(err){ - console.log(err); - }else{ - console.log(data,toString()); - } -}); -``` - -## 同步模板 -- 一,读取指定文件夹,列出所有的文件或者文件夹 -- 二,遍历这些文件或者文件夹,判断是否文件夹,是,则继续调用读取文件夹的方法 -- 三,一直重复第二步,直到将所有的内容都列出 - -```js -fs.readir('./',(err,data)=>{ - data.forEach(item=>{ - console.log(item); - fs.stat(item,(wrong,dirData)=>{ - let isDir=dirData.isDirectory() - if(isDir){ - fs.readir(item,(kk,dd){ - console.log(kk); - }else{ - console.log(dd); - }); - } - }); - }); -}); -``` \ No newline at end of file diff --git "a/\345\274\240\345\242\236\346\266\233/20240229-\344\275\277\347\224\250nodejs.md" "b/\345\274\240\345\242\236\346\266\233/20240229-\344\275\277\347\224\250nodejs.md" deleted file mode 100644 index bf3001bed29118a929588910b6fae137c092539a..0000000000000000000000000000000000000000 --- "a/\345\274\240\345\242\236\346\266\233/20240229-\344\275\277\347\224\250nodejs.md" +++ /dev/null @@ -1,11 +0,0 @@ -## 下载node - -下载地址:nodejs - -## 使用node - -1.创建文件夹,打开终端:npm init -y - -2.创建js文件 - -3.运行node:node js文件名.js \ No newline at end of file diff --git "a/\345\274\240\345\242\236\346\266\233/20240301-\346\250\241\345\235\227.md" "b/\345\274\240\345\242\236\346\266\233/20240301-\346\250\241\345\235\227.md" deleted file mode 100644 index 6f06a9d58177bd7bb8704ad545963fd5fba5e62a..0000000000000000000000000000000000000000 --- "a/\345\274\240\345\242\236\346\266\233/20240301-\346\250\241\345\235\227.md" +++ /dev/null @@ -1,15 +0,0 @@ -## 模块 - -1.在hello.js创建一个函数 -```js -function fn(name){ - console.log("你好啊,"+name); -} -module.exports=fn; //把函数fn()作为模块的输出暴露出去 -``` - -2.在app.js引入hello模块 -```js -let fn=require('./hello'); //hello为引用的模块 -fn("我不好"); -``` diff --git "a/\345\274\240\345\242\236\346\266\233/20240302-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\345\274\240\345\242\236\346\266\233/20240302-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index 54a33221039f1eb5098295bb4ffc3d4ae4c7d1f7..0000000000000000000000000000000000000000 --- "a/\345\274\240\345\242\236\346\266\233/20240302-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,39 +0,0 @@ -## fs -Node.js内置的fs模块就是文件系统模块,负责读写文件。 - -## 写入内容 -写入一个为tt.txt的文本内容如下: - -```js -let fs=require('fs'); - -//fs.writeFile('文件名称','写入内容',回调函数) -fs.writeFile('tt.text','我不好啊!hhhhhhhhhhhhhhh',function(err){ - if(err){ - console.log(err); - }else{ - console.log('ok!'); - } -}) -``` - -## 读入内容 - -```js -let fs=require('fs'); -//fs.readFile('文件名称','文件编码为utf-8',回调函数) -fs.readFile('tt.text','utf-8',function(err,data){ - if(err){ - console.log(err); - }else{ - console.log(data); - } -}) -``` -err:参数为null - -data:参数为读取到的string,代表结果 - -当读取错误时候err代表第一个错误对象,data为undefined - -标准的回调函数:第一个参数代表错误信息,第二个参数代表结果。 \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240229-node\345\237\272\347\241\200.md" "b/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240229-node\345\237\272\347\241\200.md" deleted file mode 100644 index ce022789773c31590657e7c9241e6065e2067577..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240229-node\345\237\272\347\241\200.md" +++ /dev/null @@ -1,21 +0,0 @@ -### node 下载 - -- 浏览器搜索node.js即可 - -### npm - -- npm 管理包 -- npm -v 查看包版本 - -### nvm - -- nvm 管理 node 版本与切换 - -### node 与环境变量的关系 - -- 如果遇到没有 node 命令等,需配置环境变量 - -### node 初始化一个项目 - -- npm init -- npm init -y \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240301-node\346\250\241\345\235\227.md" "b/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240301-node\346\250\241\345\235\227.md" deleted file mode 100644 index c3a5a11fb3d31333319debc66610e1007df577ef..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240301-node\346\250\241\345\235\227.md" +++ /dev/null @@ -1,17 +0,0 @@ -### 模块是什么? - -- 在 Node.js 中,模块是指封装了一组相关功能的 JavaScript 文件,用于组织和复用代码。 - -### 模块的作用 - -1. 帮助组织代码 -2. 提高代码的可维护性 -3. 可复用性 - -### 暴露模块 - -- module.exports = 当前模块要导出的内容 - -### 引入暴露模块的内容 - -- require() 函数用于加载模块 \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240302-node\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240302-node\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index 32b1d732f54a0479797593f1982a61aad8bcf611..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240302-node\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,32 +0,0 @@ -## fs是什么 - -Node.js 内置的 fs 模块就是文件系统模块,负责读写文件。 - -## 模块化规范 - 1. module变量就代表当前模块 - 2. exports就是module.expotrs - 3. 加载模块就是module.expotrs属性,require()用于加载 - -## 写入内容(异步) -```js -let fsx = require("fs"); -fsx.writeFile("文件名称.text", "内容", (err) => { - - if (err) { - console.log(err); - } - console.log("ok!"); -}); -``` - -## 读入内容(异步) - -```js -let fs = require("fs"); -fs.readFile("文件名称.text", "utf-8", (err, data) => { - if (err) { - console.log(err); - } - console.log(data); -}); -``` \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240303-node\350\257\273\345\217\226\346\226\207\344\273\266.md" "b/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240303-node\350\257\273\345\217\226\346\226\207\344\273\266.md" deleted file mode 100644 index e318df40258984320bccc7d7fe6fb6e1277303b1..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\254\224\350\256\260/20240303-node\350\257\273\345\217\226\346\226\207\344\273\266.md" +++ /dev/null @@ -1,57 +0,0 @@ -# writeFileSync 同步写入 - -- 语法:fs.writeFileSync(路径,写入文件) - -``` -let fs = require("fs") - -let w = fs.writeFileSync("./xxx","京津冀",{flag:"a"}) - -console.log(w) - -``` - -# readFileSync 同步读取 - -- 语法:fs.readFileSyn("文件路径","utf-8") - -``` -let fs =require("fs") - -let q = fs.readFileSync("./文件名","utf-8") - -console.log(q) - -``` - -# readdir 异步读取文件夹/readdirSync 同步读取文件夹 - -- 返回结果为一个数组 -1. readdir :fs.readdir(path 路径,callback(err,files)) - -``` -let fs = require("fs") - -fs.readdir("./",function(err,data){ - if(err){ - console.log(err) - } - console.log(data) -}) - -``` - -2. readdirSync :fs.readdir("path 路径") - -``` -let fs = require("fs") - -let c = fs.readdirSync("./") - -console.log(c) - -``` - -3. fs.stat 获取文件的信息 -4. isFile 检查是否是文件 -5. isDirectory 检测是否是文件夹 \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/aa.txt" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/aa.txt" deleted file mode 100644 index 9073f53ccfbdc3548fac96fcb8d277001394dd7c..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/aa.txt" +++ /dev/null @@ -1 +0,0 @@ -谎言呵呵你好,世界!你好,世界! \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/add.js" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/add.js" deleted file mode 100644 index cc9a62e061925da72cfdff88e292b34056eeb01e..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/add.js" +++ /dev/null @@ -1,2 +0,0 @@ -process.nextTick(function () { console.log('A'); }); -console.log('B'); diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/dd.js" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/dd.js" deleted file mode 100644 index 6191bbb17cb9aa9f0d24e4013bcf96631d99f2f3..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/dd.js" +++ /dev/null @@ -1,11 +0,0 @@ -let fs=require('fs'); -fs.readFile('aa.txt','utf-8', function (err,data){ - if(err){ - console.log(err); - }else{ - console.log(data); - } -}) -fs.writeFile('aa.txt','你好,世界!',{flag:'a'},function(arr){ - console.log(arr); -}) \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/app.js" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/app.js" deleted file mode 100644 index 2ce38cf53355e599099da6d91a0160ab43e9effe..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/app.js" +++ /dev/null @@ -1,59 +0,0 @@ -import fs from 'fs'; - -// fs.readdir('./', (err, data) => { -// if (err) { -// console.log(err); -// } else { -// console.log(data); -// } -// }) - -/* -一、读取指定文件夹,列出所有的文件或者文件夹 -二、遍历这些文件或者文件夹,判断是否文件夹,是,则继续调用读取文件夹的方法 -三、一直重复第二步,直到将所有的内容都列出 - -*/ - - -function listAllFile(filePath) { - let resArr = []; - /* - 1.判断是否为文件夹,如果不是,则直接返回文件名称 - 2.如果是文件夹,则列出其下所有的内容(文件、文件夹) - 3.如果列出的内容中某个项目是文件夹,则继续深入列出其下所有的内容 - */ - - // 使用同步方法,获得指定路径的状态 - let fileStat = fs.statSync(filePath); - // 利用状态,判断是否为文件 - let isPathFile = fileStat.isFile(); - - // 如果是文件,则直接放入结果数组 - if (isPathFile) { - //调用数组的push方法,将一个对象插入到数组的尾部 - resArr.push(filePath); - } else { - // 如果是文件夹,则利用readdirSync方法,读取目录中的所有的内容(包含文件和文件夹) - let arr = fs.readdirSync(filePath); - - // 遍历目录下的所有内容项目,再利用当前方法listAllFile来处理对应路径的信息(重点理解) - arr.forEach(item => { - // 判断filePath最后一个字符是否为/ - let lastStrIs = filePath.lastIndexOf('/') === filePath.length - 1; - // filePath如果最后一个是/,那么就和item直接拼接就可以,否则需要再加一个/ - let tmpPath = lastStrIs ? filePath + item : `${filePath}/${item}`; - // 拿到处理好的路径以后,直接调用listAllfile函数继续处理,拿到的结果tmpArr和原结果resArr合并, - // 再重新赋值给原结果resArr - let tmpArr = listAllFile(tmpPath); - resArr=resArr.concat(tmpArr); - }) - } - // 返回最终结果 - return resArr; - -} - - -let arr=listAllFile('./'); -console.log(arr); \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/kk/33.txt" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/kk/33.txt" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/kk/pp/66.txt" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/kk/pp/66.txt" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/package.json" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/package.json" deleted file mode 100644 index 2bfb583a34e91271e74a22532c924f51dc2810ec..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/package.json" +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "node_demo", - "version": "5.3.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC", - "type": "module" -} diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/uu.txt" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/uu.txt" deleted file mode 100644 index 176a7edd45d14bf0b14fa83afe303b49b2721465..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/uu.txt" +++ /dev/null @@ -1 +0,0 @@ - 长城长 \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/yy.txt" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/yy.txt" deleted file mode 100644 index 6804950329b24c624753ba4d95cfef7d4d9d0e40..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/node_demo/yy.txt" +++ /dev/null @@ -1 +0,0 @@ -明天会更好 \ No newline at end of file diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/package.json" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/package.json" deleted file mode 100644 index 03ea3ee7d33086dd6828c76e1ad56a466b244ef5..0000000000000000000000000000000000000000 --- "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/package.json" +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "cd", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" -} diff --git "a/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/\346\226\260\345\273\272 \346\226\207\346\234\254\346\226\207\346\241\243.txt" "b/\346\231\217\345\244\251\346\236\227/\347\273\203\344\271\240/\346\226\260\345\273\272 \346\226\207\346\234\254\346\226\207\346\241\243.txt" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/\346\235\216\345\200\241\347\246\217/20240229--nodejs\345\256\211\350\243\205.md" "b/\346\235\216\345\200\241\347\246\217/20240229--nodejs\345\256\211\350\243\205.md" deleted file mode 100644 index 4358b5443484da6b582f1278e60173fd6f7e015c..0000000000000000000000000000000000000000 --- "a/\346\235\216\345\200\241\347\246\217/20240229--nodejs\345\256\211\350\243\205.md" +++ /dev/null @@ -1,8 +0,0 @@ -### 安装nodejs - -1.官网下载nodejs
-2.安装完成后,在Windows环境下,请打开命令提示符,然后输入node -v,如果安装正常,你应该看到v7.6.0这样的输出: -C:\Users\IEUser>node -v -v7.6.0
-3.配置环境变量。安装完成后,确保在系统的环境变量中正确配置了Node.js的路径。这通常包括将Node.js的安装目录添加到系统的Path环境变量中。 -验证安装成功。打开命令行窗口(Windows系统下通过快捷键Win+R,输入cmd打开),输入`node -v`和`npm -v`来检查Node.js和npm(Node.js的包管理器)的版本号。 diff --git "a/\346\235\216\345\200\241\347\246\217/20240301--\346\250\241\345\235\227.md" "b/\346\235\216\345\200\241\347\246\217/20240301--\346\250\241\345\235\227.md" deleted file mode 100644 index f941b71a2cec32196d7d5b0c6bc4c94558374a77..0000000000000000000000000000000000000000 --- "a/\346\235\216\345\200\241\347\246\217/20240301--\346\250\241\345\235\227.md" +++ /dev/null @@ -1,30 +0,0 @@ -# 模块 - -在node环境中,一个.js文件就称之为一个模块(module). - -当一个模块编写完毕,就可以被其他地方引用。 -## 模块引用 -暴露函数 -``` -hello.js - var s ='Hello'; - function fn(name){ - console.log(s + ',' +name+'!'); - } - module.exports = fn //(将函数fn作为模块的输出暴露出去,其他模块可以使用fn函数了) -``` -其他模块引用函数 -main.js - - var fn = require('./hello'); - var s = 'MM'; - fn(s);//Hello,MM! - -其中require函数的引用代表,引入的模块作为变量保存在fn变量中,所以main.js模块中引用了fn()函数,可以在main.js中使用它了。 -## 总结 -``` -要在模块中对外输出变量,用: -module.exports = var; -输出的变量可以是任意对象、函数、数组等等。 -要引入其他模块输出的对象,用: -var foo = require('other_module'); \ No newline at end of file diff --git "a/\346\235\216\345\200\241\347\246\217/20240302--\345\220\214\346\255\245\345\274\202\346\255\245.md" "b/\346\235\216\345\200\241\347\246\217/20240302--\345\220\214\346\255\245\345\274\202\346\255\245.md" deleted file mode 100644 index 72860874ef05ae0c8147b50e0bc567c4d3699a73..0000000000000000000000000000000000000000 --- "a/\346\235\216\345\200\241\347\246\217/20240302--\345\220\214\346\255\245\345\274\202\346\255\245.md" +++ /dev/null @@ -1,77 +0,0 @@ -# global -``` -JavaScript有且仅有一个全局对象,在浏览器中,叫window对象。而在Node.js环境中,也有唯一的全局对象,叫global; -``` - -## process -通过process对象可以拿到许多信息: -``` -process.version; -'v5.2.0' -> process.platform; -'darwin' -> process.arch; -'x64' - ``` -## 判断js的执行环境 -``` -if (typeof(window) === 'undefined') { - console.log('node.js'); -} else { - console.log('browser'); -} -``` -## 同步、异步 - -同步:代码简单,程序将等待IO操作(程序运行有先后顺序) - - 异步:不用等待IO操作,但代码较麻烦(程序运行无顺序) -fs读取文件 - -- 异步读取文件: -``` -var fs = require('fs'); - -fs.readFile('sample.txt', 'utf-8', function (err, data) { - if (err) { - console.log(err); - } else { - console.log(data); - } -}); -``` - - 同步读取文件: -``` -var fs = require('fs'); - -var data = fs.readFileSync('sample.txt', 'utf-8'); -console.log(data); -fs写文件 -``` - - 异步写文件 - ``` -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFile('output.txt', data, function (err) { - if (err) { - console.log(err); - } else { - console.log('ok.'); - } -}); -``` - - 同步写文件 - ``` -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFileSync('output.txt', data); -追加写入 -若 fs.writeFile() 不添加配置 则是替换式写入, -追加式写入 -fs.writeFile(x,x,{flag:'a'},x); -fs.appendFile(x,x,x,x); -fs.appendFileSync(x,x,) -``` -\ No newline at end of file \ No newline at end of file diff --git "a/\346\236\227\346\230\245\347\277\224/20240229_\345\210\235\350\256\244node.md" "b/\346\236\227\346\230\245\347\277\224/20240229_\345\210\235\350\256\244node.md" deleted file mode 100644 index a7640825987c2ec4a4a6334974ada98c8d2e9306..0000000000000000000000000000000000000000 --- "a/\346\236\227\346\230\245\347\277\224/20240229_\345\210\235\350\256\244node.md" +++ /dev/null @@ -1,24 +0,0 @@ -## node.js和环境变量的关系 -在 Node.js中,环境变量是可以在操作系统中设置并在 Node.js 应用程序中访问的特殊变量。环境变量可以用来在不同的环境中配置应用程序的行为,例如数据库连接信息、API密钥等敏感信息。 - -你可以在启动 Node.js 应用程序时通过命令行获取环境变量,例如: -```js -console.log(process.env) -``` -```js -{ - PATH: '/usr/local/bin:/usr/bin', - JAVAHOME: '/usr/lib/Java', - ... -} -``` - -## node.js项目初始化 -1. 确保你已经安装了 Node.js。可以在终端中运行 `node -v` 命令来检查 Node.js 是否已安装和版本号。 -2. 创建一个新的项目文件夹,并进入该文件夹 -3. 初始化 Node.js 项目。在终端中运行以下命令: -```js -npm init -y -``` -完成后将会生成一个 `package.json` 文件,其中包含了你的项目的配置信息。 -4. 开发你的 Node.js 项目。在项目文件夹中创建你的 JavaScript 文件,并编写代码。 \ No newline at end of file diff --git "a/\346\236\227\346\230\245\347\277\224/20240301_node\346\250\241\345\235\227.md" "b/\346\236\227\346\230\245\347\277\224/20240301_node\346\250\241\345\235\227.md" deleted file mode 100644 index 6ada5e9bee3e9fa6e196bd62b880b1145d4d7b17..0000000000000000000000000000000000000000 --- "a/\346\236\227\346\230\245\347\277\224/20240301_node\346\250\241\345\235\227.md" +++ /dev/null @@ -1,20 +0,0 @@ -## 模块 -模块就是将文件里面定义好功能的函数和对象看成一个结合体,当用户调用模块就相当于拥有了这个模块里面的所有功能。 -### 模块化好处 -1. 方便维护,代码定位准确 -2. 内部的变量,相互不影响,方便单个模块功能调试、升级,方便模块间组合、分解 -3. 方便团队开发,多人协作互不干扰 -4. 模块可以复用 -## 暴露 -```js -'use strict';// 严格模式 - -var a = 'Hello'; - -function something(text) { - console.log(a + ', ' + text + '!'); -} - -module.exports = something;// 暴露语句 -``` -可以将函数greet作为模块的输出暴露出去,这样其他模块就可以使用greet函数了。 \ No newline at end of file diff --git "a/\346\236\227\347\216\211\346\225\217/20240229_\345\237\272\347\241\200.md" "b/\346\236\227\347\216\211\346\225\217/20240229_\345\237\272\347\241\200.md" deleted file mode 100644 index 9d71da6e065b7ae25b577624556adad93c0b18f4..0000000000000000000000000000000000000000 --- "a/\346\236\227\347\216\211\346\225\217/20240229_\345\237\272\347\241\200.md" +++ /dev/null @@ -1,10 +0,0 @@ -# 下载与配置 -1. 官网nodejs.org 下载 LTG长期支持版本 -2. 配置环境:右键我的电脑=》属性=》高级配置=》环境变量=》找到path=》添加路径【node存在的根目录路径】=》确定 -环境的意义:将文件从此环境中执行 -环境配置成功后才可以成功执行node命令 -# 代码 -node 文件路径【Tab快捷输入】 -## 初始化文件 -1. 创建入口文件app.js,创建配置文件package.json【内容必须有{}】 -2. npm init 初始化文件 \ No newline at end of file diff --git "a/\346\236\227\347\216\211\346\225\217/20240301_\346\250\241\345\235\227.md" "b/\346\236\227\347\216\211\346\225\217/20240301_\346\250\241\345\235\227.md" deleted file mode 100644 index 3d7fdd3354cefd593bd25627999119493d45efef..0000000000000000000000000000000000000000 --- "a/\346\236\227\347\216\211\346\225\217/20240301_\346\250\241\345\235\227.md" +++ /dev/null @@ -1,9 +0,0 @@ -# 基础 -1. package-lock.json 为锁定的配置文件,当用户下载包时,下载的是该文件中的版本,若没有该文件,则下载package.json文件中的版本 -2. 关闭VS后又迅速开启时,VS会重用上一次的记录 -# 模块 -向外暴露: -1. module.exports={XX} -2. exports.XX=XX - -引入模块:require('模块相对路径') \ No newline at end of file diff --git "a/\346\236\227\347\216\211\346\225\217/20240302_fs\346\250\241\345\235\227.md" "b/\346\236\227\347\216\211\346\225\217/20240302_fs\346\250\241\345\235\227.md" deleted file mode 100644 index f7a0870e90c58f5d5b6cf51df83b18198f919975..0000000000000000000000000000000000000000 --- "a/\346\236\227\347\216\211\346\225\217/20240302_fs\346\250\241\345\235\227.md" +++ /dev/null @@ -1,30 +0,0 @@ -# 同步异步 -JS为单线程语言,节省运行时间 -eg:执行普通代码时,定时器等待,定时结束进入线程执行代码,两条线执行 -# 暴露 -1. module.exports=XX require('相对路径') -2. export{数据1,...} import {数据1} from '相对路径' -# fs文件模块 -1. 引入require('fs') -2. 方法 - 1. fs.writeFile(文件路径,内容,[,文件模式]fn(err,rel)) - 1. 文件模式: - 1. string 文件写入格式,内容会覆盖 'utf8' - 2. object 文件写入形式【添加,覆盖...】 {flag:'a'}【 w 覆盖写入,a 添加】 - 2. fs.readFile(文件路径,文件模式,fn(错误,内容)) - 1. 文件模式: 'utf-8' | {flag:'r'} -```js -const fs = require('fs') -fs.writeFile('./one.text', '\nBye~',{flag:'w'}, function (err,fd) { - if (err) { - return console.log(err.message); - } - console.log("写入成功"); -}) -fs.readFile('./one.text', 'utf-8', function (err, rel) { - if (err) { - return console.log(err); - } - console.log(rel); -}) -``` \ No newline at end of file diff --git "a/\346\236\227\347\243\212/2024-02-29\345\256\211\350\243\205node.md" "b/\346\236\227\347\243\212/2024-02-29\345\256\211\350\243\205node.md" deleted file mode 100644 index 86dd6c2d60ca224dbbca2312e7f5b583551e2481..0000000000000000000000000000000000000000 --- "a/\346\236\227\347\243\212/2024-02-29\345\256\211\350\243\205node.md" +++ /dev/null @@ -1,19 +0,0 @@ -## 笔记 -#### 1、下载 - -通过浏览器访问nodejs官网,点击长期维护版下载链接下载nodejs虚拟机安装包 - -#### 2、修改全局模块安装路径默认nodejs依赖模块安装在C盘,随着开发工作的开展, -1、在D:\Program\nodejs安装目录创建 “node_global” 和 “node_cache” 两个文件夹; -2、打开cmd,执行以下命令:npm config set prefix "D:\Program\nodejs\node_global" -npm config set cache "D:\Program\nodejs\node_cache"3、修改系统 - -#### 3、检验安装是否成功 - -打开cmd,执行以下命令: - -node -v -npm -v - -命令运行后,都输出了正确的软件版本号 -,说明nodejs运行环境安装成功。 \ No newline at end of file diff --git "a/\346\236\227\347\243\212/2024-03-01\347\254\254\344\270\200\346\254\241\345\260\235\350\257\225.md" "b/\346\236\227\347\243\212/2024-03-01\347\254\254\344\270\200\346\254\241\345\260\235\350\257\225.md" deleted file mode 100644 index 3e8b75c71a03cc332f56c078a95aaf1cb7e4f91a..0000000000000000000000000000000000000000 --- "a/\346\236\227\347\243\212/2024-03-01\347\254\254\344\270\200\346\254\241\345\260\235\350\257\225.md" +++ /dev/null @@ -1,9 +0,0 @@ -## 笔记 -创建node 文件 npm init -model.exports = '' -主文件引用 let xx = reauire('路径') -快捷键 终端输入 npm i --save @types/node - -环境变量的安装右键“此电脑”→属性→高级系统设置→环境变量→系统变量中的Path→编辑>导入node.js安装根目录 - -npm config set registry registry.npmmirror.com \ No newline at end of file diff --git "a/\346\236\227\347\243\212/2024-03-02\345\220\214\346\255\245\345\274\202\346\255\245.md" "b/\346\236\227\347\243\212/2024-03-02\345\220\214\346\255\245\345\274\202\346\255\245.md" deleted file mode 100644 index ed0235f801f52875a199a9eb5232253346bbe362..0000000000000000000000000000000000000000 --- "a/\346\236\227\347\243\212/2024-03-02\345\220\214\346\255\245\345\274\202\346\255\245.md" +++ /dev/null @@ -1,40 +0,0 @@ -## 笔记 -#### 同步异步 -同步意味着双方要相互等待、相互依赖, -而异步意味着双方相互独立、各行其是。 - - -#### gitee - -git init - 初始化仓库。 -git add . - 添加文件到暂存区。 -git commit - 将暂存区内容添加到仓库中。 -#提交与修改 - -git add 添加文件到暂存区 -git status 查看仓库当前的状态,显示有变更的文件。 -git diff 比较文件的不同,即暂存区和工作区的差异。 -git commit 提交暂存区到本地仓库。 -git reset 回退版本。 -git rm 将文件从暂存区和工作区中删除。 -git mv 移动或重命名工作区文件。 - -提交日志 -git log 查看历史提交记录 -git blame 以列表形式查看指定文件的历史修改记录 -远程操作 -git remote 远程仓库操作 -git fetch 从远程获取代码库 -git pull 下载远程代码并合并 -git push 上传远程代码并合并 - -#### 模块 -读取 -fs.readFile('','uft-8',(err,data)=>{ - if(err){ - - } -}) -写入 -fs.writeFile('',''(flag:'a'),function(err,datastr){}) - diff --git "a/\346\236\227\347\243\212/2024-03-03\346\226\207\344\273\266\346\237\245\346\211\276.md" "b/\346\236\227\347\243\212/2024-03-03\346\226\207\344\273\266\346\237\245\346\211\276.md" deleted file mode 100644 index 9b73a7c22f739bd0893e44ddc81f46baae12d38f..0000000000000000000000000000000000000000 --- "a/\346\236\227\347\243\212/2024-03-03\346\226\207\344\273\266\346\237\245\346\211\276.md" +++ /dev/null @@ -1,27 +0,0 @@ -## 笔记 -### statSync -fs.statSync()方法用于异步返回有关给定文件路径的信息。 -返回的fs.Stat对象具有多个字段和方法,以获取有关文件的更多详细信息。 - -fs.statSync( path, options ) -path:它包含必须检查的文件的路径。它可以是字符串,缓冲区或URL。 -options:该对象可用于指定将影响输出的可选参数。它具有一个可选参数: - -bigint:它是一个布尔值,它指定fs.Stats对象中返回的数值是否为bigint。默认值为false - -### readdirSync -fs.readdirSync()方法用于同步读取给定目录的内容。 -该方法返回一个数组,其中包含目录中的所有文件名或对象。 - options参数可用于更改从方法返回文件的格式 - - 用法: - -fs.readdirSync( path, options ) - -path:它保存必须从中读取内容的目录路径。它可以是字符串,缓冲区或URL。 -options:它是一个对象,可用于指定将影响方法的可选参数。它具有两个可选参数: - -encoding:它是一个字符串值,该字符串值指定给回调参指定的文件名使用哪种编码。默认值为“ utf8”。 - -withFileTypes:这是一个布尔值,它指定是否将文件作fs.Dirent对象返回。默认值为“ false” - diff --git "a/\346\261\244\345\270\214\351\224\220/20240229-NodeJs\345\222\214npm.md" "b/\346\261\244\345\270\214\351\224\220/20240229-NodeJs\345\222\214npm.md" deleted file mode 100644 index 16fbc58aaaeec9ecad7f9c764178a0ebd5a64be3..0000000000000000000000000000000000000000 --- "a/\346\261\244\345\270\214\351\224\220/20240229-NodeJs\345\222\214npm.md" +++ /dev/null @@ -1,41 +0,0 @@ -## 下载Node.Js -1. 浏览器搜索nodejs,选择网站为:https://nodejs.org -2. 选择LTS版本安装 - -## 查看Node.Js的版本号 -- 打开终端(win+r再输入cmd),输入命令node -v - -## 什么是npm -- npm(“Node 包管理器”)是 JavaScript 运行时 Node.js 的默认程序包管理器,node.js 在安装时会 自动安装 npm - -## npm的初始化 -- 创建一个空目录,然后以此目录作为工作目录 启动命令行工具 ,执行 npm init -y - -## 下载包 -1. 网站搜索网址是 https://www.npmjs.com,找到需要的包 -2. npm install(简写i) <包名> - -## npm镜像 -可以提高包的下载速度 - -## npm镜像安装 -1. 直接配置 -``` -npm config set registry 镜像网址 -``` -2. 工具配置 -``` -1. 安装nrm -npm i -g nrm -2. 查看当前源 -npm ls -3. 切换源 -npm use 源名 -4. 删除源 -npm del 源名 -``` - - - - - diff --git "a/\346\261\244\345\270\214\351\224\220/20240301-\346\250\241\345\235\227\345\214\226.md" "b/\346\261\244\345\270\214\351\224\220/20240301-\346\250\241\345\235\227\345\214\226.md" deleted file mode 100644 index fc5006626be0de5a792bca83b7acae4e65718b97..0000000000000000000000000000000000000000 --- "a/\346\261\244\345\270\214\351\224\220/20240301-\346\250\241\345\235\227\345\214\226.md" +++ /dev/null @@ -1,43 +0,0 @@ -## 什么是模块化 -- 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化 - -## 模块化的好处 -1. 防止命名冲突 -2. 高复用性 -3. 高维护性 - -## 模块暴露数据和暴露数据的方式 -1. 创建一个js文件,声明函数 -2. 创建另一个js文件,导入模块 -- module.exports=函数名; -``` -例子: -创建hanshu.js -function fn(){ - console.log("123"); -} -module.exports=函数名; -创建diaoyong.js -导入: -let a=require("./hanshu.js"); -调用: -a(); -``` -- exports.name=函数名; -``` -例子: -创建hanshu.js -function fn(){ - console.log("123"); -} -exports.name=函数名; -创建diaoyong.js -导入: -let a=require("./hanshu.js"); -调用: -a.name(); -``` - -## 导入模块注意事项 -1. 对于自己创建的模块,导入时路径建议写 相对路径 ,且不能省略 ./ 和 ../ -2. 导入 node.js 内置模块时,直接 require 模块的名字即可,无需加 ./ 和 ../ss diff --git "a/\346\261\244\345\270\214\351\224\220/20240302-import from\346\232\264\351\234\262\346\263\225\345\222\214fs\346\250\241\345\235\227\350\257\273\345\206\231\346\226\207\344\273\266.md" "b/\346\261\244\345\270\214\351\224\220/20240302-import from\346\232\264\351\234\262\346\263\225\345\222\214fs\346\250\241\345\235\227\350\257\273\345\206\231\346\226\207\344\273\266.md" deleted file mode 100644 index 58a4a3af1f6f5ab55e5d62dcee0501b115fdd0aa..0000000000000000000000000000000000000000 --- "a/\346\261\244\345\270\214\351\224\220/20240302-import from\346\232\264\351\234\262\346\263\225\345\222\214fs\346\250\241\345\235\227\350\257\273\345\206\231\346\226\207\344\273\266.md" +++ /dev/null @@ -1,50 +0,0 @@ -## import暴露法 -1. 首先在package.json文件中添加属性:"type":"module"; -2. 创建一个js文件,声明函数并暴露:export {函数名} (接收一个对象) -3. 创建另一个js文件,导入模块:以import {函数名} from 相对路径 -``` -例子: -创建hanshu.js -function fn(){ - console.log("123"); -} -export {fn}; -创建diaoyong.js -导入: -import {fn} from ./hanshu.js; -调用: -fn(); -``` - -## 什么是fs模块 -- fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。 - -## fs模块读文件 -1. readFile 异步读取:fs.readFile(path(文件路径)[, options], callback(回调函数)) -``` -例子: -首先创建一个txt文本 -let a=require("fs"); -a.readFile("./3.txt","UTF-8",(err,data)=>{ - if(err){ - console.log("err:"+err); - }else{ - console.log("内容:"+"\n"+data); - } -}); -``` -2. readFileSync 同步读取: fs.readFileSync(path[, options]) - -## fs模块写文件 -3. writeFile 异步写入:fs.writeFile(file(文件名), data(待写入的数据)[, options], callback(回调函数)) -``` -例子: -首先创建一个txt文本(没有的话会创建一个) -let a=require("fs"); -a.writeFile("./3.txt","\n111",{flag:'a'},function(err){ - if(!err){ - console.log("写入成功"); - } -}) -``` -1. writeFileSync 同步写入:fs.writeFileSync(file(文件名), data(待写入的数据)[, options]) \ No newline at end of file diff --git "a/\346\261\244\345\270\214\351\224\220/20240303-fs\346\250\241\345\235\227\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271\345\222\214\347\212\266\346\200\201.md" "b/\346\261\244\345\270\214\351\224\220/20240303-fs\346\250\241\345\235\227\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271\345\222\214\347\212\266\346\200\201.md" deleted file mode 100644 index 4ae7230505344341b32cef8ed259824db6f1c551..0000000000000000000000000000000000000000 --- "a/\346\261\244\345\270\214\351\224\220/20240303-fs\346\250\241\345\235\227\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271\345\222\214\347\212\266\346\200\201.md" +++ /dev/null @@ -1,30 +0,0 @@ -## fs模块读取文件夹 -1. fs.readdir(path[, options], callback):异步读取 -``` -例子: -fs.readdir('./论语', (err, data) => { - if(err){ - console.log(err); - }else{ - console.log(data); - } -}); -``` -2. fs.readdirSync(path[, options]):同步读取 -``` -例子: -let data = fs.readdirSync('./论语'); -console.log(data); -``` - -## fs模块查看资源状态 -1. fs.stat(path[, options], callback):异步查看 -2. fs.statSync(path[, options]):同步查看 -``` -常用的结果值对象结构: -size 文件体积 -birthtime 创建时间 -mtime 最后修改时间 -isFile 检测是否为文件 -isDirectory 检测是否为文件夹 -``` \ No newline at end of file diff --git "a/\346\270\251\346\230\237\350\276\260/2024-2.29-\345\256\211\350\243\205node\345\222\214npm.md" "b/\346\270\251\346\230\237\350\276\260/2024-2.29-\345\256\211\350\243\205node\345\222\214npm.md" deleted file mode 100644 index c5d342c68df01bc3bb6ee3dfc24035dff07d1337..0000000000000000000000000000000000000000 --- "a/\346\270\251\346\230\237\350\276\260/2024-2.29-\345\256\211\350\243\205node\345\222\214npm.md" +++ /dev/null @@ -1,15 +0,0 @@ - # 安装node和npm - - -## npm -npm是Node.js的包管理工具(全称package manager)。 - -npm init ====>初始化一个新的npm项目 - -npm -v ====>检测npm是否安装 - -npmm i koa ====>镜像 - -## 执行node代码 - -node 要执行js文件的路径 diff --git "a/\346\270\251\346\230\237\350\276\260/2024-3.1-\346\250\241\345\235\227.md" "b/\346\270\251\346\230\237\350\276\260/2024-3.1-\346\250\241\345\235\227.md" deleted file mode 100644 index 75dee75b1d75aa2dd53a21def7d039e4f80f2b41..0000000000000000000000000000000000000000 --- "a/\346\270\251\346\230\237\350\276\260/2024-3.1-\346\250\241\345\235\227.md" +++ /dev/null @@ -1,31 +0,0 @@ - -# 模块 -在node环境中,一个.js文件就称之为一个模块(module). - -当一个模块编写完毕,就可以被其他地方引用。 -## 模块引用 -暴露函数 -``` -hello.js - var s ='Hello'; - function fn(name){ - console.log(s + ',' +name+'!'); - } - module.exports = fn //(将函数fn作为模块的输出暴露出去,其他模块可以使用fn函数了) -``` -其他模块引用函数 -main.js - - var fn = require('./hello'); - var s = 'MM'; - fn(s);//Hello,MM! - -其中require函数的引用代表,引入的模块作为变量保存在fn变量中,所以main.js模块中引用了fn()函数,可以在main.js中使用它了。 -## 总结 -``` -要在模块中对外输出变量,用: -module.exports = var; -输出的变量可以是任意对象、函数、数组等等。 -要引入其他模块输出的对象,用: -var foo = require('other_module'); -``` \ No newline at end of file diff --git "a/\346\270\251\346\230\237\350\276\260/2024-3.2-global.md" "b/\346\270\251\346\230\237\350\276\260/2024-3.2-global.md" deleted file mode 100644 index e47c7928e0699898c6acdd69d896d5686e02f834..0000000000000000000000000000000000000000 --- "a/\346\270\251\346\230\237\350\276\260/2024-3.2-global.md" +++ /dev/null @@ -1,77 +0,0 @@ - -# global -``` -JavaScript有且仅有一个全局对象,在浏览器中,叫window对象。而在Node.js环境中,也有唯一的全局对象,叫global; -``` - -## process -通过process对象可以拿到许多信息: -``` -process.version; -'v5.2.0' -> process.platform; -'darwin' -> process.arch; -'x64' - ``` -## 判断js的执行环境 -``` -if (typeof(window) === 'undefined') { - console.log('node.js'); -} else { - console.log('browser'); -} -``` -## 同步、异步 - -同步:代码简单,程序将等待IO操作(程序运行有先后顺序) - - 异步:不用等待IO操作,但代码较麻烦(程序运行无顺序) -fs读取文件 - -- 异步读取文件: -``` -var fs = require('fs'); - -fs.readFile('sample.txt', 'utf-8', function (err, data) { - if (err) { - console.log(err); - } else { - console.log(data); - } -}); -``` - - 同步读取文件: -``` -var fs = require('fs'); - -var data = fs.readFileSync('sample.txt', 'utf-8'); -console.log(data); -fs写文件 -``` - - 异步写文件 - ``` -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFile('output.txt', data, function (err) { - if (err) { - console.log(err); - } else { - console.log('ok.'); - } -}); -``` - - 同步写文件 - ``` -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFileSync('output.txt', data); -追加写入 -若 fs.writeFile() 不添加配置 则是替换式写入, -追加式写入 -fs.writeFile(x,x,{flag:'a'},x); -fs.appendFile(x,x,x,x); -fs.appendFileSync(x,x,) -``` \ No newline at end of file diff --git "a/\347\216\213\345\256\235sen/20240229-node\345\256\211\350\243\205.md" "b/\347\216\213\345\256\235sen/20240229-node\345\256\211\350\243\205.md" deleted file mode 100644 index 0cc4ecd8e1279fcf8697b1c18e54ce03ca2e8710..0000000000000000000000000000000000000000 --- "a/\347\216\213\345\256\235sen/20240229-node\345\256\211\350\243\205.md" +++ /dev/null @@ -1,8 +0,0 @@ -## 第一次笔记 - -### 环境变量 - -鼠标悬浮在我的电脑,右键打开,下拉再打开高级系统设置,点击环境变量,选中在系统变量的path,浏览查看到是否有node.js,没有就添加 -### 了解npm和nvm -npm:是 Node JavaScript 平台的包管理器。它将模块放置到位,以便 node 可以找到它们,并智能地管理依赖冲突。 -nvm:是node版本管理器 \ No newline at end of file diff --git "a/\347\216\213\345\256\235sen/20240301-node\345\237\272\347\241\200.md" "b/\347\216\213\345\256\235sen/20240301-node\345\237\272\347\241\200.md" deleted file mode 100644 index a6156c1abd6ff02f8fbc856e1808db37bcb2ffbb..0000000000000000000000000000000000000000 --- "a/\347\216\213\345\256\235sen/20240301-node\345\237\272\347\241\200.md" +++ /dev/null @@ -1,29 +0,0 @@ -## 第二次笔记 -### 更改镜像地址 - - npm config set registry https://registry.npmmirror.com - > 设置淘宝镜像源 - - npm config get registry - > 查看使用状态 - -### 初始化项目 -npm init 会生成package.json文件,里面有各种依赖包 -npm init -y 可以生成不询问的package.json文件 -npm install 会生成package.json文件,里面有各种依赖包到并且生成node_modules文件夹 快捷方式 npm i - -### 基础知识 - - package-lock.json 是在不更新node版本时会一直使用这个,也就是锁定,主要还是看package.json文件 - - - - var greet = require('./hello'); - - - - return module.exports; - - - JavaScript有且仅有一个全局对象,在浏览器中,叫window对象。而在Node.js环境中,也有唯一的全局对象,叫global; \ No newline at end of file diff --git "a/\347\216\213\345\256\235sen/20240302-node\346\250\241\345\235\227.md" "b/\347\216\213\345\256\235sen/20240302-node\346\250\241\345\235\227.md" deleted file mode 100644 index 8b69493ba65ce6b50f717279c2999df9c047a09d..0000000000000000000000000000000000000000 --- "a/\347\216\213\345\256\235sen/20240302-node\346\250\241\345\235\227.md" +++ /dev/null @@ -1,75 +0,0 @@ -## 第三次笔记 - -### 异步读写和同步读写 - -异步就是两个人同时去做事情(相当于并联) -同步是必须在第一个人做完后才能让第二个人(相当于串联) - -- 异步读取文件: -``` -var fs = require('fs'); - -fs.readFile('sample.txt', 'utf-8', function (err, data) { - if (err) { - console.log(err); - } else { - console.log(data); - } -}); -``` - - 同步读取文件: -``` -var fs = require('fs'); - -var data = fs.readFileSync('sample.txt', 'utf-8'); -console.log(data); -fs写文件 -``` - - 异步写文件 - ``` -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFile('output.txt', data, function (err) { - if (err) { - console.log(err); - } else { - console.log('ok.'); - } -}); -``` - - 同步写文件 - ``` -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFileSync('output.txt', data); -追加写入 -若 fs.writeFile() 不添加配置 则是替换式写入, -追加式写入 -fs.writeFile(x,x,{flag:'a'},x); -fs.appendFile(x,x,x,x); -fs.appendFileSync(x,x,) -``` - -### export 直接暴露使用 -export {} -用import from代替require -但一定要记得在package.json里添加 "type": "module" - - -## 判断js执行环境(是否使用在浏览器还是使用node) -``` -if (typeof(window) === 'undefined') { - console.log('node.js'); -} else { - console.log('browser'); -} -``` -## 同步、异步 - -同步:代码简单,程序将等待IO操作(程序运行有先后顺序) - - 异步:不用等待IO操作,但代码较麻烦(程序运行无顺序) -fs读取文件 - diff --git "a/\347\216\213\345\256\235sen/20240303-\346\250\241\345\235\2272.md" "b/\347\216\213\345\256\235sen/20240303-\346\250\241\345\235\2272.md" deleted file mode 100644 index 7b1ba4d86bce9e878b1d559628b67f62db9031a9..0000000000000000000000000000000000000000 --- "a/\347\216\213\345\256\235sen/20240303-\346\250\241\345\235\2272.md" +++ /dev/null @@ -1,22 +0,0 @@ -## 第四次笔记 - -```js - let fileStat = fs.statSync(filePath); - 使用同步方法,获得指定路径的状态 -``` -```js - - let isPathFile = fileStat.isFile(); - 利用状态,判断是否为文件 -``` -```js - let arr = fs.readdirSync(filePath); - 如果是文件夹,则利用readdirSync方法,读取目录中的所有的内容(包含文件和文件夹) -``` - -这里包含Sync后缀的均是同步进行,反之则为异步。 -### 打印文件夹及其内容思路 - > - 一、读取指定文件夹,列出所有的文件或者文件夹 - > - 二、遍历这些文件或者文件夹,判断是否文件夹,是,则继续调用读取文件夹的方法 - > - 三、一直重复第二步,直到将所有的内容都列出 - \ No newline at end of file diff --git "a/\347\274\252\346\242\223\344\272\250/20240229-node\344\270\213\350\275\275.md" "b/\347\274\252\346\242\223\344\272\250/20240229-node\344\270\213\350\275\275.md" deleted file mode 100644 index d29922b057a8b9ac4894a1d072353e1299781a2a..0000000000000000000000000000000000000000 --- "a/\347\274\252\346\242\223\344\272\250/20240229-node\344\270\213\350\275\275.md" +++ /dev/null @@ -1,19 +0,0 @@ -### node下载 -- 官网下载LTS长期版本即可 -- node -v 查看node版本 - -### npm -- npm 管理包 -- npm -v 查看包版本 - -### nvm -- nvm 管理node版本与切换 - -### 修改镜像地址 -- npm config set registry https://registry.npmmirror.com - -### node与环境变量的关系 -- 我应该懂了都是不懂怎么表达 - -### node初始化一个项目 -- npm init -y diff --git "a/\347\274\252\346\242\223\344\272\250/20240301-node\346\250\241\345\235\227.md" "b/\347\274\252\346\242\223\344\272\250/20240301-node\346\250\241\345\235\227.md" deleted file mode 100644 index 6646c411b294cba31dcf1ba6d87eef975b49e649..0000000000000000000000000000000000000000 --- "a/\347\274\252\346\242\223\344\272\250/20240301-node\346\250\241\345\235\227.md" +++ /dev/null @@ -1,55 +0,0 @@ -### 搭建Node开发环境 - -``` - 在Mac系统上,Finder选中一个目录,右键菜单并没有“通过Code打开”这个操作。不过我们可以通过Automator自己添加这个操作。 - - 先运行Automator,选择“服务”: - - automator-service - - 然后,执行以下操作: - - 在右侧面板选择“服务”收到选定的“文件夹”,位于“Finder.app“,该选项是为了从Finder中接收一个文件夹; 在左侧面板选择”实用工具“,然后找到”运行 Shell脚本“,把它拽到右侧面板里; 在右侧”运行Shell脚本“的面板里,选择Shell”/bin/bash“,传递输入“作为自变量”,然后修改Shell脚本如下: - - for f in "$@" - do - open -a "Visual Studio Code" "$f" - done - 保存为“Open With VSCode”后,打开Finder,选中一个文件夹,点击右键,“服务”,就可以看到“Open With VSCode”菜单: -``` - - -### 模块 - -``` - 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 - - 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。 在Node环境中,一个.js文件就称之为一个模块(module)。 -``` - -``` - 要在模块中对外输出变量,用: - - module.exports = variable; - 输出的变量可以是任意对象、函数、数组等等。 - - 要引入其他模块输出的对象,用: - - var foo = require('other_module'); - 引入的对象具体是什么,取决于引入模块输出的对象。 -``` - -``` - 例如: - //暴露:函数/字符串/对象...都可以实现 - hello.js:function fn(){ - console.log('哈哈哈哈哈'); - } - module.exports=fn; - - //引用: - app.js:let fn=require('./hello'); - fn(); - - 终端:node app.js -``` \ No newline at end of file diff --git "a/\347\274\252\346\242\223\344\272\250/20240302-\345\237\272\347\241\200\345\222\214\346\226\207\344\273\266\346\250\241\345\235\227.md" "b/\347\274\252\346\242\223\344\272\250/20240302-\345\237\272\347\241\200\345\222\214\346\226\207\344\273\266\346\250\241\345\235\227.md" deleted file mode 100644 index 11ee8e3f17de86bbfe01f74548161789bbb1b181..0000000000000000000000000000000000000000 --- "a/\347\274\252\346\242\223\344\272\250/20240302-\345\237\272\347\241\200\345\222\214\346\226\207\344\273\266\346\250\241\345\235\227.md" +++ /dev/null @@ -1,124 +0,0 @@ -## 基本模块 -### global -JavaScript有且仅有一个全局对象,在浏览器中,叫window对象。而在Node.js环境中,也有唯一的全局对象,叫global,进入Node.js交互环境,可直接输入: - -``` -global.console - -Console -{ - log: [Function: bound ], - info: [Function: bound ], - warn: [Function: bound ], - error: [Function: bound ], - dir: [Function: bound ], - time: [Function: bound ], - timeEnd: [Function: bound ], - trace: [Function: bound trace], - assert: [Function: bound ], - Console: [Function: Console] -} -``` -例如: - -``` -global.console.log(55)与console.log(55)是一样的 -``` - -## 文件系统模块 -### fs -Node.js内置的fs模块就是文件系统模块,负责读写文件 - -写入在Node.js中,文件写入可以使用同步和异步两种方式进行。同步写入会阻塞程序执行,直到写入操作完成,而异步写入允许程序继续执行其他任务,不会阻塞 - -在大多数情况下,建议使用异步写入,以提高程序的性能和响应速度 - -### 异步读文件 -1. fs.writeFile() -fs.writeFile()方法用于异步写入文件内容,如果文件不存在,则会创建文件;如果文件已存在,它会覆盖原有内容 - -语法格式:fs.writeFile(filename,data,[options],callback); -- filename:要写入的文件的路径 - -- data:要写入的数据 - -- options:可选参数,可以设置编码方式、文件标志等 - -- callback:回调函数,用于处理写入操作完成后的操作 - -例如: - -``` -// 引入fs模块 -var fs = require('fs'); - -fs.writeFile('aa.txt','write','utf-8',function(err) -{ - if(err) - { - console.error(err); - } - else - { - console.log('文件写入成功'); - } -}); -``` -2. fs.readFile() -使用fs.readFile()方法,向其传入文件路径、编码、以及会带上文件数据(以及错误)进行调用的回调函数 - -例如: - -``` -'use strict'; - -// 引入fs模块 -var fs = require('fs'); - -fs.readFile('sample.txt', 'utf-8', function(err, data) -{ - if(err) - { - console.log(err); - } - else - { - console.log(data); - } -}); -``` -请注意,sample.txt文件必须在当前目录下,且文件编码为utf-8 - -异步读取时,传入的回调函数接收两个参数,当正常读取时,err参数为null,data参数为读取到的String。当读取发生错误时,err参数代表一个错误对象,data为undefined。这也是Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果。 - -3. fs.appendFile() -fs.appendFile()方法用于异步追加数据到文件末尾,如果文件不存在,则会创建文件。这是一个常用于日志记录的方法 - -语法格式:fs.appendFile(filename,data,[options],callback); - -- filename:要追加的文件的路径 - -- data:要追加的数据 - -- options:可选参数,可以设置编码方式、文件标志等 - -- callback:回调函数,用于处理追加操作完成后的操作 - -例如: - -``` -// 引入fs模块 -var fs = require('fs'); - -fs.appendFile('aa.txt','append','utf-8',function(err) -{ - if(err) - { - console.error(err); - } - else - { - console.log('数据追加成功'); - } -}); -``` \ No newline at end of file diff --git "a/\347\274\252\346\242\223\344\272\250/20240303-js\346\226\207\344\273\266\346\250\241\345\235\227.md" "b/\347\274\252\346\242\223\344\272\250/20240303-js\346\226\207\344\273\266\346\250\241\345\235\227.md" deleted file mode 100644 index 5d32949601437a96eb012e54bbd2a25db43f8528..0000000000000000000000000000000000000000 --- "a/\347\274\252\346\242\223\344\272\250/20240303-js\346\226\207\344\273\266\346\250\241\345\235\227.md" +++ /dev/null @@ -1,39 +0,0 @@ -### writeFileSync 同步写入 -- 语法:fs.writeFileSync(路径,写入文件) -例子: - -``` -let fs = require("fs") -let a = fs.writeFileSync("./xxx","眼鼻嘴",{flag:"a"}) -console.log(a) -``` -### readFileSync同步读取 -- 语法:fs.readFileSyn("路径","utf-8") -例子: - -``` -let fs =require("fs") -let b = fs.readFileSync("./xxx","utf-8") -console.log(b) -``` -### readdir异步读取文件夹/readdirSync读取文件夹 -- 返回结果为一个数组 -### readdir语法:fs.readdir(path路径,callback(err,files)) -例子: - -``` -let fs = require("fs") -fs.readdir("./",function(err,data){ - if(err){ - console.log(err) - } - console.log(data) -}) -readdirSync语法:fs.readdir("path路径",options) -let fs = require("fs") -let c = fs.readdirSync("./") -console.log(c) -``` -- fs.stat获取文件的信息 -- isFile检查是否是文件 -- isDirectory检测是否是文件夹 \ No newline at end of file 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 diff --git "a/\350\222\262\346\230\214\346\234\210/20240229--\345\256\211\350\243\205node.js.md" "b/\350\222\262\346\230\214\346\234\210/20240229--\345\256\211\350\243\205node.js.md" deleted file mode 100644 index 4136b9a6036aad0884334f470a9bdccdd8ac07b4..0000000000000000000000000000000000000000 --- "a/\350\222\262\346\230\214\346\234\210/20240229--\345\256\211\350\243\205node.js.md" +++ /dev/null @@ -1,53 +0,0 @@ -安装Node.js和npm - - -由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境。 - -安装Node.js -目前Node.js的最新版本是13.5.x。首先,从Node.js官网下载对应平台的安装程序,网速慢的童鞋请移步国内镜像。 -12.7 -在Windows上安装时务必选择全部组件,包括勾选Add to Path。 - -安装完成后,在Windows环境下,请打开命令提示符,然后输入node -v,如果安装正常,你应该看到v7.6.0这样的输出: - -C:\Users\IEUser>node -v -v7.6.0 - -继续在命令提示符输入node,此刻你将进入Node.js的交互环境。在交互环境下,你可以输入任意JavaScript语句,例如100+200,回车后将得到输出结果。 - -要退出Node.js环境,连按两次Ctrl+C。 - -在Mac或Linux环境下,请打开终端,然后输入node -v,你应该看到如下输出: - -$ node -v -v10.15.3 - -如果版本号小于v7.6.0,说明Node.js版本不对,后面章节的代码不保证能正常运行,请重新安装最新版本。 - -npm -在正式开始Node.js学习之前,我们先认识一下npm。 - -npm是什么东东?npm其实是Node.js的包管理工具(package manager)。 - -为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。 - -更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。 - -讲了这么多,npm究竟在哪? - -其实npm已经在Node.js安装的时候顺带装好了。我们在命令提示符或者终端输入npm -v,应该看到类似的输出: - -C:\>npm -v -4.1.2 -如果直接输入npm,你会看到类似下面的输出: - -C:\> npm - -Usage: npm - -where is one of: - ... -上面的一大堆文字告诉你,npm需要跟上命令。现在我们不用关心这些命令,后面会一一讲到。目前,你只需要确保npm正确安装了,能运行就行。 - -小结 -请在本机安装Node.js环境,并确保node和npm能正常运行。 \ No newline at end of file diff --git "a/\350\222\262\346\230\214\346\234\210/20240301--\346\250\241\345\235\227.md" "b/\350\222\262\346\230\214\346\234\210/20240301--\346\250\241\345\235\227.md" deleted file mode 100644 index b6274d6475dcf3ea037f94a0fda911aaeb76bb76..0000000000000000000000000000000000000000 --- "a/\350\222\262\346\230\214\346\234\210/20240301--\346\250\241\345\235\227.md" +++ /dev/null @@ -1,32 +0,0 @@ -## 模块 -### 使用 npm 命令安装模块 -npm 安装 Node.js 模块语法格式如下: - -$ npm install -以下实例,我们使用 npm 命令安装常用的 Node.js web框架模块 express: - -$ npm install express -安装好之后,express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require('express') 的方式就好,无需指定第三方包路径。 - -var express = require('express'); -#### 全局安装与本地安装 -npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 - -npm install express # 本地安装 -npm install express -g # 全局安装 -如果出现以下错误: - -npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 -### 解决办法为: - -$ npm config set proxy null - -本地安装 -1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。 -2. 可以通过 require() 来引入本地安装的包。 - -全局安装 -1. 将安装包放在 /usr/local 下或者你 node 的安装目录。 -2. 可以直接在命令行里使用。 - - diff --git "a/\350\256\270\346\231\250/11.txt" "b/\350\256\270\346\231\250/11.txt" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/\350\256\270\346\231\250/20240229-node\347\232\204\344\270\213\350\275\275\344\270\216\345\256\211\350\243\205.md" "b/\350\256\270\346\231\250/20240229-node\347\232\204\344\270\213\350\275\275\344\270\216\345\256\211\350\243\205.md" deleted file mode 100644 index 800da51ad04a7c81ae61628337b83838e213fb58..0000000000000000000000000000000000000000 --- "a/\350\256\270\346\231\250/20240229-node\347\232\204\344\270\213\350\275\275\344\270\216\345\256\211\350\243\205.md" +++ /dev/null @@ -1,43 +0,0 @@ -## 安装Node.js和npm - -由于Node.js平台是在后端运行JavaScript代码,所以,必须首先在本机安装Node环境。 - -安装Node.js 目前Node.js的最新版本是13.5.x。首先,从Node.js官网下载对应平台的安装程序,网速慢的童鞋请移步国内镜像。 12.7 在Windows上安装时务必选择全部组件,包括勾选Add to Path。 - -安装完成后,在Windows环境下,请打开命令提示符,然后输入node -v,如果安装正常,你应该看到v7.6.0这样的输出: - -C:\Users\IEUser>node -v v7.6.0 - -继续在命令提示符输入node,此刻你将进入Node.js的交互环境。在交互环境下,你可以输入任意JavaScript语句,例如100+200,回车后将得到输出结果。 - -要退出Node.js环境,连按两次Ctrl+C。 - -在Mac或Linux环境下,请打开终端,然后输入node -v,你应该看到如下输出: - -$ node -v v10.15.3 - -如果版本号小于v7.6.0,说明Node.js版本不对,后面章节的代码不保证能正常运行,请重新安装最新版本。 - -## 认识npm - -npm 在正式开始Node.js学习之前,我们先认识一下npm。 - -npm是什么东东?npm其实是Node.js的包管理工具(package manager)。 - -为啥我们需要一个包管理工具呢?因为我们在Node.js上开发时,会用到很多别人写的JavaScript代码。如果我们要使用别人写的某个包,每次都根据名称搜索一下官方网站,下载代码,解压,再使用,非常繁琐。于是一个集中管理的工具应运而生:大家都把自己开发的模块打包后放到npm官网上,如果要使用,直接通过npm安装就可以直接用,不用管代码存在哪,应该从哪下载。 - -更重要的是,如果我们要使用模块A,而模块A又依赖于模块B,模块B又依赖于模块X和模块Y,npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。否则,靠我们自己手动管理,肯定既麻烦又容易出错。 - -讲了这么多,npm究竟在哪? - -其实npm已经在Node.js安装的时候顺带装好了。我们在命令提示符或者终端输入npm -v,应该看到类似的输出: - -C:>npm -v 4.1.2 如果直接输入npm,你会看到类似下面的输出: - -C:> npm - -Usage: npm - -where is one of: ... 上面的一大堆文字告诉你,npm需要跟上命令。现在我们不用关心这些命令,后面会一一讲到。目前,你只需要确保npm正确安装了,能运行就行。 - -小结 请在本机安装Node.js环境,并确保node和npm能正常运行。 \ No newline at end of file diff --git "a/\350\256\270\346\231\250/20240301-\347\254\254\344\270\200\344\270\252node\347\250\213\345\272\217.md" "b/\350\256\270\346\231\250/20240301-\347\254\254\344\270\200\344\270\252node\347\250\213\345\272\217.md" deleted file mode 100644 index 8e6b52d4f9693060eb6a73b402ba46052fe56dea..0000000000000000000000000000000000000000 --- "a/\350\256\270\346\231\250/20240301-\347\254\254\344\270\200\344\270\252node\347\250\213\345\272\217.md" +++ /dev/null @@ -1,56 +0,0 @@ -第一行总是写上'use strict';是因为我们总是以严格模式运行JavaScript代码,避免各种潜在陷阱。 - -然后,选择一个目录,例如C:\Workspace,把文件保存为hello.js,就可以打开命令行窗口,把当前目录切换到hello.js所在目录,然后输入以下命令运行这个程序了: - -C:\Workspace>node hello.js -Hello, world. -也可以保存为别的名字,比如first.js,但是必须要以.js结尾。此外,文件名只能是英文字母、数字和下划线的组合。 - -如果当前目录下没有hello.js这个文件,运行node hello.js就会报错: - -C:\Workspace>node hello.js -module.js:338 - throw err; - ^ -Error: Cannot find module 'C:\Workspace\hello.js' - at Function.Module._resolveFilename - at Function.Module._load - at Function.Module.runMain - at startup - at node.js -报错的意思就是,没有找到hello.js这个文件,因为文件不存在。这个时候,就要检查一下当前目录下是否有这个文件了。 - -## 命令行模式和Node交互模式 - -请注意区分命令行模式和Node交互模式。 - -看到类似C:>是在Windows提供的命令行模式: - -run-node-hello -在命令行模式下,可以执行node进入Node交互式环境,也可以执行node hello.js运行一个.js文件。 - -看到>是在Node交互式环境下: - -node-interactive-env -在Node交互式环境下,我们可以输入JavaScript代码并立刻执行。 - -此外,在命令行模式运行.js文件和在Node交互式环境下直接运行JavaScript代码有所不同。Node交互式环境会把每一行JavaScript代码的结果自动打印出来,但是,直接运行JavaScript文件却不会。 - -使用严格模式 - -如果在JavaScript文件开头写上'use strict';,那么Node在执行该JavaScript时将使用严格模式。但是,在服务器环境下,如果有很多JavaScript文件,每个文件都写上'use strict';很麻烦。我们可以给Nodejs传递一个参数,让Node直接为所有js文件开启严格模式: - -node --use_strict calc.js -后续代码,如无特殊说明,我们都会直接给Node传递--use_strict参数来开启严格模式。 - -## 小结 - -- 用文本编辑器写JavaScript程序,然后保存为后缀为.js的文件,就可以用node直接运行这个程序了。 - -- Node的交互模式和直接运行.js文件有什么区别呢? - -- 直接输入node进入交互模式,相当于启动了Node解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。 - -- 直接运行node hello.js文件相当于启动了Node解释器,然后一次性把hello.js文件的源代码给执行了,你是没有机会以交互的方式输入源代码的。 - -- 在编写JavaScript代码的时候,完全可以一边在文本编辑器里写代码,一边开一个Node交互式命令窗口,在写代码的过程中,把部分代码粘到命令行去验证,事半功倍! \ No newline at end of file diff --git "a/\350\256\270\346\231\250/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\344\270\216\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\350\256\270\346\231\250/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\344\270\216\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index 8414171843320c63b5156eb79269f24f47f4ec0c..0000000000000000000000000000000000000000 --- "a/\350\256\270\346\231\250/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\344\270\216\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,106 +0,0 @@ -## 基本模块 - - -## 文件系统模块 - -### fs -Node.js内置的fs模块就是文件系统模块,负责读写文件。 - -和所有其它JavaScript模块不同的是,fs模块同时提供了异步和同步的方法。 - -回顾一下什么是异步方法。因为JavaScript的单线程模型,执行IO操作时,JavaScript代码无需等待,而是传入回调函数后,继续执行后续JavaScript代码。比如jQuery提供的getJSON()操作: -``` -$.getJSON('http://example.com/ajax', function (data) { - console.log('IO结果返回后执行...'); -}); -console.log('不等待IO结果直接执行后续代码...'); - -``` - -而同步的IO操作则需要等待函数返回: - -根据网络耗时,函数将执行几十毫秒~几秒不等: -var data = getJSONSync('http://example.com/ajax'); -同步操作的好处是代码简单,缺点是程序将等待IO操作,在等待时间内,无法响应其它任何事件。而异步读取不用等待IO操作,但代码较麻烦。 - -### 异步读文件 -按照JavaScript的标准,异步读取一个文本文件的代码如下: -``` -'use strict'; - -var fs = require('fs'); - -fs.readFile('sample.txt', 'utf-8', function (err, data) { - if (err) { - console.log(err); - } else { - console.log(data); - } -}); - -``` - -请注意,sample.txt文件必须在当前目录下,且文件编码为utf-8。 - -异步读取时,传入的回调函数接收两个参数,当正常读取时,err参数为null,data参数为读取到的String。当读取发生错误时,err参数代表一个错误对象,data为undefined。这也是Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果。后面我们还会经常编写这种回调函数。 - -如果我们要读取的文件不是文本文件,而是二进制文件,怎么办? - -当读取二进制文件时,不传入文件编码时,回调函数的data参数将返回一个Buffer对象。在Node.js中,Buffer对象就是一个包含零个或任意个字节的数组(注意和Array不同)。 - -Buffer对象可以和String作转换 - -### 同步读文件 - -除了标准的异步读取模式外,fs也提供相应的同步读取函数。同步读取的函数和异步函数相比,多了一个Sync后缀,并且不接收回调函数,函数直接返回结果。 - -用fs模块同步读取一个文本文件的代码如下: - -'use strict'; - -var fs = require('fs'); - -var data = fs.readFileSync('sample.txt', 'utf-8'); -console.log(data); -可见,原异步调用的回调函数的data被函数直接返回,函数名需要改为readFileSync,其它参数不变。 - -### 写文件 - -将数据写入文件是通过fs.writeFile()实现的: -``` -'use strict'; - -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFile('output.txt', data, function (err) { - if (err) { - console.log(err); - } else { - console.log('ok.'); - } -}); - -``` - -writeFile()的参数依次为文件名、数据和回调函数。如果传入的数据是String,默认按UTF-8编码写入文本文件,如果传入的参数是Buffer,则写入的是二进制文件。回调函数由于只关心成功与否,因此只需要一个err参数。 - -和readFile()类似,writeFile()也有一个同步方法,叫writeFileSync(): -``` -'use strict'; - -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFileSync('output.txt', data); - - -``` - -### 异步还是同步 - -在fs模块中,提供同步方法是为了方便使用。那我们到底是应该用异步方法还是同步方法呢? - -由于Node环境执行的JavaScript代码是服务器端代码,所以,绝大部分需要在服务器运行期反复执行业务逻辑的代码,必须使用异步代码,否则,同步代码在执行时期,服务器将停止响应,因为JavaScript只有一个执行线程。 - -服务器启动时如果需要读取配置文件,或者结束时需要写入到状态文件时,可以使用同步代码,因为这些代码只在启动和结束时执行一次,不影响服务器正常运行时的异步执行。 diff --git "a/\350\256\270\346\231\250/20240303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\350\256\270\346\231\250/20240303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index d52f289ed91bd7e7fe550c7287c926a45e307c46..0000000000000000000000000000000000000000 --- "a/\350\256\270\346\231\250/20240303-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,37 +0,0 @@ -注:有panckage.json文件才是一个标准的node.js项目 - -## 同步读 (readFileSync) -import fs from 'fs'; -let data=fs.readFileSync('xx.txt','uft-8'); -console.log(data); - -## 读文件夹 -import fs from 'fs'; -//异步 -``` -fs.readdir('./',(err,data)=>{ - data.foreach(item)=>{ - log(item); - fs.stat(item,(wrong,dirData)=>{ - let isDir=dirData.isDirectiry(); - if(isDir){ - fs.readdir(item,(kk,dd)=>{ - if(kk){log(kk)} - else{ - log(dd) - } - }) - } - }) - } -}) - - -``` - - -//注意:若出现多个则需要用递归的方法。 - -- 1.读取指定文件夹,列出所有的文件或文件夹 -- 2.遍历这些文件或者文件夹,判断是否是文件夹,是,则继续调用读取文件夹的方法 -- 3.一直重复第二步,直到将所有的内容都列出 \ No newline at end of file diff --git "a/\350\277\236\345\242\236\351\222\261/20240229_node\347\232\204\344\270\213\350\275\275\345\222\214npm.md" "b/\350\277\236\345\242\236\351\222\261/20240229_node\347\232\204\344\270\213\350\275\275\345\222\214npm.md" new file mode 100644 index 0000000000000000000000000000000000000000..6670e38486ac47f99b1fec7e0cabd4bb90cd1628 --- /dev/null +++ "b/\350\277\236\345\242\236\351\222\261/20240229_node\347\232\204\344\270\213\350\275\275\345\222\214npm.md" @@ -0,0 +1,27 @@ +# 一.npm和nvm + +npm:管理包的作用 + +nvm:管理node的版本 + +# 二.CMD常用命令 + +切换盘符:C:或者D: + +切换工作目录:cd 文件名字 + +查看目录文件:dir + +在vscode的控制台中执行命令:node 文件名.js + +# 三.初始化node.js项目 + +###### 1.在vscode中创建一个项目文件夹 + +###### 2.用npm init命令初始化一个node.js的项目 + +###### 3.安装依赖包命令,例如:npm install express(依赖包名称) + +###### 4.运行项目:node 文件名.js + +**package-lock.json的作用:是在使用npm install命令安装依赖时自动生成的文件,用于锁定项目依赖项的版本。** \ No newline at end of file diff --git "a/\350\277\236\345\242\236\351\222\261/20240301_\346\250\241\347\211\210\347\232\204\346\232\264\351\234\262\345\222\214\345\274\225\347\224\250.md" "b/\350\277\236\345\242\236\351\222\261/20240301_\346\250\241\347\211\210\347\232\204\346\232\264\351\234\262\345\222\214\345\274\225\347\224\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..ceeccc99864ceabb8ffdbbfe1775aba838ba5e71 --- /dev/null +++ "b/\350\277\236\345\242\236\351\222\261/20240301_\346\250\241\347\211\210\347\232\204\346\232\264\351\234\262\345\222\214\345\274\225\347\224\250.md" @@ -0,0 +1,27 @@ +# 一.git的仓库管理 + +提取流程:从组织Fork到个人仓库在clone到本地计算记 + +提交流程:从本地计算记Push到个人git仓库在PR至组织仓库 + +# 二.环境变量的配置 + +1.在任务栏输入框中进行搜索系统环境变量 + +2.点击进入后,点击高级里面的环境变量 + +3.在系统变量中找到path进行编辑 + +4.点击新建,找到要保存的环境变量 + +# 三.node模版的引用 + +1.在要共享数据的js文件中写:module.export = "要共享的数据"(或者数组等等数据类型); + +2.在要引用其他js文件中的js文件中写:var 变量名 = require(./模版名) + +3.调用要共享的数据 + +**以上操作要建立在项目已经初始化的前提下,如果没有初始化就不能使用module.export等命令** + +**初始化命令:node init -y** \ No newline at end of file diff --git "a/\350\277\236\345\242\236\351\222\261/20240302_fs\347\232\204\350\257\273\345\206\231.md" "b/\350\277\236\345\242\236\351\222\261/20240302_fs\347\232\204\350\257\273\345\206\231.md" new file mode 100644 index 0000000000000000000000000000000000000000..f38795d78bb63eaa8cbeae577cd309016ca74515 --- /dev/null +++ "b/\350\277\236\345\242\236\351\222\261/20240302_fs\347\232\204\350\257\273\345\206\231.md" @@ -0,0 +1,64 @@ +# 一.Node中的全局对象:global + +在js中的全局对象是Windows + +而在node.js中的全局对象是global + +# 二.Node中的查看进程:process + +用来查看计算机进程 + +# 三.同步和异步 + +同步:在js语法中属于单线程,而同步是指程序会等待IO进程执行完毕后,在依靠顺序完成代码 + +异步:运行node.js代码时遇到IO进程时会分出线程来执行IO进程,而js代码还是在运行并不会等待IO进程 + + +# 四.fs模块 + +## 读写文件 + +1.异步读写文件 + +``` +fs.readFile("./文件名","utf-8",回调函数) +例如: +fs.readFile("./文件名","utf-8",(err,date)=>{ + if(err){ + console.log(err) + // 写入失败 + }else{ + console.log(date) + // 写入成功,打印数据 + } +}) +``` + +2.同步读写文件 + +``` +fs.readFileSync("./文件名","utf-8") +同步读写文件没有回调函数,要在终端显示需要声明一个变量来log进行输出 +``` + +## 写入文件 + +1.异步写入文件 +``` + 首先先引入fs模板 + const fs = require("fs") + fs.writeFile("./文件名","待写入数据",err=>{ + if(err){ + console.log("写入失败") + }else{ + console.log("写入成功") + } + }) +``` + +2.同步写入文件 +``` + fs.writeFileSync("./文件名","待写入数据") + // 没有回调函数 +``` \ No newline at end of file diff --git "a/\350\277\236\345\242\236\351\222\261/20240303_fs\350\257\273\345\217\226\346\226\207\344\273\266.md" "b/\350\277\236\345\242\236\351\222\261/20240303_fs\350\257\273\345\217\226\346\226\207\344\273\266.md" new file mode 100644 index 0000000000000000000000000000000000000000..91d3dc176f5d202f8070f1943cdaf1b9e8f74ebf --- /dev/null +++ "b/\350\277\236\345\242\236\351\222\261/20240303_fs\350\257\273\345\217\226\346\226\207\344\273\266.md" @@ -0,0 +1,46 @@ +# 一.获得文件或者目录的状态 + +获得文件状态:就是获得文件大小,创建时间,修改时间,权限等 + +### 同步获得文件状态 + +``` +var 变量名 = fs.statSync("文件或者目录的路径") +``` + +### 异步获得文件状态 + +``` +var 变量名 = fs.stat("文件或者目录的路径", (err, files) => { + if (err) { + console.error(err); + return; + } + console.log(files);) +``` + + + +# 二.读取指定目录中的文件 + +用于读取指定目录下的文件列表 + +### 同步读取文件 + +``` +var 变量名 = fs.readdirSync("要读取的文件路径") +``` + +### 异步读取文件 + +``` +fs.readdir("要读取的文件路径", (err, files) => { + if (err) { + console.error(err); + return; + } + console.log(files); +}); + +``` + diff --git "a/\351\202\261\346\245\267\346\235\255/20240229 - \350\256\244\347\237\245node.md" "b/\351\202\261\346\245\267\346\235\255/20240229 - \350\256\244\347\237\245node.md" deleted file mode 100644 index 972742444b6936aeaea505524a567124b39a25b1..0000000000000000000000000000000000000000 --- "a/\351\202\261\346\245\267\346\235\255/20240229 - \350\256\244\347\237\245node.md" +++ /dev/null @@ -1,22 +0,0 @@ -# 初认node -## npm - ### 概念 - npm是意思是 Node 的包管理系统(即软件包仓库) - ### 切换国内镜像库 - npm get registry --获取当前镜像库 | - npm set registry + 地址 --设置新的镜像库 -## 终端运行 - node --直接进入运行交互环境 | - Ctrl+d --退出交互环境 | - node+地址 --运行程序 - ## nvm - 是一个命令行应用,可以协助您快速地 更新、安装、使用、卸载 本机的全局 node.js 版本。 - ## 作业 - ### 关于环境配置 - 大体指: npm安装的全局模块所在的路径,以及缓存cache的路径(高级系统设置->环境变量->系统变量->path) -### 初始化文件 - -![Alt text](./imgs/first.png) - -命令:npm init - \ No newline at end of file diff --git "a/\351\202\261\346\245\267\346\235\255/20240301 - \346\250\241\345\235\227.md" "b/\351\202\261\346\245\267\346\235\255/20240301 - \346\250\241\345\235\227.md" deleted file mode 100644 index 55a6d803f2287e987275ca96bbff4de23ed287bc..0000000000000000000000000000000000000000 --- "a/\351\202\261\346\245\267\346\235\255/20240301 - \346\250\241\345\235\227.md" +++ /dev/null @@ -1,17 +0,0 @@ -# 模块 -## 概念 -在Node环境中,一个.js文件就称之为一个模块(module) -## 暴露与接收 -### 暴露 - 命令: - ```js - module.exports=对象(变量,对象,数组.....) - - - ``` - ### 接收 - 接收的对象皆为变量存储 - 命令: - ```js - var xx = require('模块路径'[不加后缀]) - ``` \ No newline at end of file diff --git "a/\351\202\261\346\245\267\346\235\255/20240302 - \346\226\207\344\273\266\346\250\241\345\235\227.md" "b/\351\202\261\346\245\267\346\235\255/20240302 - \346\226\207\344\273\266\346\250\241\345\235\227.md" deleted file mode 100644 index 72874590a7d7ebb5744c729e44a770aa6a84e7bf..0000000000000000000000000000000000000000 --- "a/\351\202\261\346\245\267\346\235\255/20240302 - \346\226\207\344\273\266\346\250\241\345\235\227.md" +++ /dev/null @@ -1,25 +0,0 @@ -# 文件模块 -## 暴露模块 - 需要改配置文件type - ```js - 文件1.js - exports{目标对象}; - 文件2.js - import{目标}from("文件1") - - - - ``` -## 文件fs -### 异步读取文件 -```js - 先请求对象fs - var 对象= require('fs'); - 对象.readFile('文件路径','utf-8',function(err,data){}) -``` -### 写文件 -```js - 先请求对象fs - var 对象= require('fs'); - 对象.readFile('文件路径',data(想写入的内容),function(err){}) -``` \ No newline at end of file diff --git "a/\351\202\261\346\245\267\346\235\255/20240303 - \346\226\207\344\273\266\350\257\273\345\217\226.md" "b/\351\202\261\346\245\267\346\235\255/20240303 - \346\226\207\344\273\266\350\257\273\345\217\226.md" deleted file mode 100644 index 85bf2ac3bf9919c0060da409504ba67124e6fe91..0000000000000000000000000000000000000000 --- "a/\351\202\261\346\245\267\346\235\255/20240303 - \346\226\207\344\273\266\350\257\273\345\217\226.md" +++ /dev/null @@ -1,54 +0,0 @@ -# 文件读取 -## 思路 - 一、读取指定文件夹,列出所有的文件或者文件夹 - -二、遍历这些文件或者文件夹,判断是否文件夹,是,则继续调用读取文件夹的方法 - -三、一直重复第二步,直到将所有的内容都列出 - -## 代码 -```js - -function listAllFile(filePath) { - let resArr = []; - /* - 1.判断是否为文件夹,如果不是,则直接返回文件名称 - 2.如果是文件夹,则列出其下所有的内容(文件、文件夹) - 3.如果列出的内容中某个项目是文件夹,则继续深入列出其下所有的内容 - */ - - // 使用同步方法,获得指定路径的状态 - let fileStat = fs.statSync(filePath); - // 利用状态,判断是否为文件 - let isPathFile = fileStat.isFile(); - - // 如果是文件,则直接放入结果数组 - if (isPathFile) { - //调用数组的push方法,将一个对象插入到数组的尾部 - resArr.push(filePath); - } else { - // 如果是文件夹,则利用readdirSync方法,读取目录中的所有的内容(包含文件和文件夹) - let arr = fs.readdirSync(filePath); - - // 遍历目录下的所有内容项目,再利用当前方法listAllFile来处理对应路径的信息(重点理解) - arr.forEach(item => { - // 判断filePath最后一个字符是否为/ - let lastStrIs = filePath.lastIndexOf('/') === filePath.length - 1; - // filePath如果最后一个是/,那么就和item直接拼接就可以,否则需要再加一个/ - let tmpPath = lastStrIs ? filePath + item : `${filePath}/${item}`; - // 拿到处理好的路径以后,直接调用listAllfile函数继续处理,拿到的结果tmpArr和原结果resArr合并, - // 再重新赋值给原结果resArr - let tmpArr = listAllFile(tmpPath); - resArr=resArr.concat(tmpArr); - }) - } - // 返回最终结果 - return resArr; - -} - - -let arr=listAllFile('./'); -console.log(arr); - -``` \ No newline at end of file diff --git "a/\351\202\261\346\245\267\346\235\255/imgs/first.PNG" "b/\351\202\261\346\245\267\346\235\255/imgs/first.PNG" deleted file mode 100644 index ee1f7860657a7daf44ef48a2302632cbd8af5757..0000000000000000000000000000000000000000 Binary files "a/\351\202\261\346\245\267\346\235\255/imgs/first.PNG" and /dev/null differ diff --git "a/\351\202\271\347\246\217\347\247\221/20240229-\345\210\235\350\257\206node\344\270\216npm.md" "b/\351\202\271\347\246\217\347\247\221/20240229-\345\210\235\350\257\206node\344\270\216npm.md" deleted file mode 100644 index 37f7ba132a418e6520b00ae9712515c1b34cf75a..0000000000000000000000000000000000000000 --- "a/\351\202\271\347\246\217\347\247\221/20240229-\345\210\235\350\257\206node\344\270\216npm.md" +++ /dev/null @@ -1,52 +0,0 @@ -### 什么是Node.js -Node.js是一个基于Chrome V8引擎的JavaScript运行环境。 -- 也就是JavaScript通过浏览器这个运行环境可以做前端开发 -- JavaScript通过node.js这个运行环境可以做后端开发 -- Node.js中无法调用DOM和BOM等浏览器内置API。 - -### Node.js 可以做什么 -Node.js作为一个JavaScript的运行环境,仅仅提供了基础的功能和APl。然而,基于Node.js提供的这些基础能,很多强大的工具和框架如雨后春笋,层出不穷,所以学会了Node.js,可以让前端程序员胜任更多的工作和岗位: -- 基于Express框架(http://www.expressjs.com.cn),可以快速构建Web应用 -- 基于Electron框架(https:l/electronjs.org),可以构建跨平台的桌面应用 -- 基于restify框架(http:restify.com),可以快速构建API接口项目 -- 读写和操作数据库、创建实用的命令行工具辅助前端开发、etc... - -### 什么是包? -- Node.js中的第三方模块又叫做包。 -- 就像电脑和计算机指的是相同的东西,第三方模块和包指的是同一个概念,只不过叫法不同。 - -### 包的来源 -- 不同于Node.js中的内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用。 -- 注意:Node.js中的包都是免费且开源的,不需要付费即可免费下载使用。 - -### 为什么需要包 -- 由于Node.js的内置模块仅提供了一些底层的API,导致在基于内置模块进行项目开发的时,效率很低。 -- **包是基于内置模块封装出来的,提供了更高级、更方便的APi,极大的提高了开发效率。** -- 包和内置模块之间的关系,类似于jQuery和浏览器内置API之间的关系。 - -### 从哪里下载包 -- 国外有一家IT公司,叫做npm,Inc.这家公司旗下有一个非常著名的网站:https://www.npmjs.com/ ,它是全球最 -大的包共享平台,你可以从这个网站上搜索到任何你需要的包,只要你有足够的耐心! -- 到目前为止,全球约1100多万的开发人员,通过这个包共享平台,开发并共享了超过120多万个包供我们使用。 -npm,Inc.公司提供了一个地址为https://registry.npmjs.org/ 的服务器,来对外共享所有的包,我们可以从这个服务 -器上下载自己所需要的包。 - -### npm: 包管理工具 - -### 在项目中下载包命令 -- npm install 包的完整名称 -- npm i 包的完整名称 (简写) -- 一般默认下载的包都是最新版本,如果需要指定版本: npm i 包的完整名称@版本号 - - eg:npm i moment@2.22.2 - -### 解决下包速度慢的问题 -了解: -- 在使用npm下包的时候,默认从国外的``https://registry.npmjs.org/`` 服务器进行下载,此时,网络数据的传输需要经过漫长的海底光缆,因此下包速度会很慢。 -- 淘宝在国内搭建了一个服务器,专门把国外官方服务器上的包同步到国内的服务器,然后在国内提供下包的服务。从而极大的提高了下包的速度。 -- 镜像(Mirroring)是一种文件存储形式,一个磁盘上的数据在另一个磁盘上存在个完全相同的副本即为镜像。 -- 解决方法: 切换镜像源 - ``` - - npm config get registry 这是了解到目前的镜像源 - - npm config set registry http://npmmirror.com - http://npmmirror.com 淘宝最新镜像源 - ``` \ No newline at end of file diff --git "a/\351\202\271\347\246\217\347\247\221/20240301-module\346\250\241\345\235\227\344\270\216\346\232\264\351\234\262\346\225\260\346\215\256.md" "b/\351\202\271\347\246\217\347\247\221/20240301-module\346\250\241\345\235\227\344\270\216\346\232\264\351\234\262\346\225\260\346\215\256.md" deleted file mode 100644 index 89fa864f59d3a957666ec97cde844eb43e7857d7..0000000000000000000000000000000000000000 --- "a/\351\202\271\347\246\217\347\247\221/20240301-module\346\250\241\345\235\227\344\270\216\346\232\264\351\234\262\346\225\260\346\215\256.md" +++ /dev/null @@ -1,14 +0,0 @@ -### module对象 -- 在每个js自定义模块中都有一个module对象,它里面存储了和当前模块有关的信息 - -### module.exports对象 -在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,供外界使用。 -外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象。 -在一个自定义模块中,默认情况下, ``module.exports ={}`` - -### Node.js中的模块化规范 -- Node.js遵循了CommonJS模块化规范,CommonJS规定了模块的特性和各模块之间如何相互依赖。 -- CommonJS规定: - 1. 每个模块内部,module变量代表当前模块。 - 2. module变量是一个对象,它的exports属性(即module.exports)是对外的接口。 - 3. 加载某个模块,其实是加载该模块的module.exports属性。require()方法用于加载模块。 diff --git "a/\351\202\271\347\246\217\347\247\221/20240302-fs\346\250\241\345\235\227\344\270\216\346\232\264\351\234\262\346\225\260\346\215\256.md" "b/\351\202\271\347\246\217\347\247\221/20240302-fs\346\250\241\345\235\227\344\270\216\346\232\264\351\234\262\346\225\260\346\215\256.md" deleted file mode 100644 index 607acb2b89a05cbadd84b97c1af3a0871c9f208b..0000000000000000000000000000000000000000 --- "a/\351\202\271\347\246\217\347\247\221/20240302-fs\346\250\241\345\235\227\344\270\216\346\232\264\351\234\262\346\225\260\346\215\256.md" +++ /dev/null @@ -1,50 +0,0 @@ -### 回顾:同步、异步 -Node.js 中的磁盘操作是由其他 线程 完成的,结果的处理有两种模式: -- 同步处理 JavaScript 主线程 会等待 其他线程的执行结果,然后再继续执行主线程的代码,效率较低 -- 异步处理 JavaScript 主线程 不会等待 其他线程的执行结果,直接执行后续的主线程代码,效率较好 - -### 什么是fs文件系统模块 -- fs模块是Node.js官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。 -- eg: - - fs.readFile(path[,options],callback) 方法,用来读取指定文件中的内容 - - fs.writeFile(file,data[,options],callback) 方法,用来向指定的文件中写入内容 -- 如果要在JavaScript代码中,使用fs模块来操作文件,则需要使用如下的方式先导入它: ``const fs = require('fs')`` - -### 使用 fs 模块 中的readfile方法读取文件 -- 异步读取:``fs.readFile(path[,options],callback)`` - - 参数1:必选参数,字符串,表示文件的路径。 - - 参数2:可选参数,表示以什么编码格式来读取文件。一般默认指定为 utf8 - - 参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。 -- 同步读取:``fs.readFileSync(path[,options])`` -参数与 fs.readFile 大体一致,只是没有 callback 参数 - -### 使用 fs 模块中的writefile方法撰写文件文件 -- ``fs.writeFile(file,data[,options],callback)`` - - 参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径。 - - 参数2:必选参数,表示要写入的内容。 - - 参数3:可选参数,表示以什么格式写入文件内容,默认值是utf8。会直接覆盖文件 - - ``{flag:'a'}`` 追加文件 - - ``{flag:'w'}`` 直接覆盖文件 - - 参数4:必选参数,文件写入完成后的回调函数。 -- 同步写入:``fs.writeFileSync(file,data[,options])`` -参数与 fs.writeFile 大体一致,只是没有 callback 参数 - -### 暴露数据 import -- 分支模块 -``` - function fn(){ - console.log('111') - } - // 暴露数据 - export {fn} -``` -- 主模块 -``` - // 前提:在配置文件package.json中把该项目的commonjs规范改成 module - // 在package.json中加入 "type":"module" - // 这时就不能用 require 来导入模块了 - // 利用 import ·· from ·· - import {fn} from "分支模块路径" - // 执行分支模块中的方法 - fn() -``` \ No newline at end of file diff --git "a/\351\202\271\347\246\217\347\247\221/20240303-\350\257\273\345\217\226\346\226\207\344\273\266\344\275\234\344\270\232.js" "b/\351\202\271\347\246\217\347\247\221/20240303-\350\257\273\345\217\226\346\226\207\344\273\266\344\275\234\344\270\232.js" deleted file mode 100644 index e044b383bed1af3acf2ad6fb60779e84048bffdb..0000000000000000000000000000000000000000 --- "a/\351\202\271\347\246\217\347\247\221/20240303-\350\257\273\345\217\226\346\226\207\344\273\266\344\275\234\344\270\232.js" +++ /dev/null @@ -1,44 +0,0 @@ -// 导入 fs 模块 -let fs = require('fs') - - -function listall(filepath) { - let arr = [] - /* - 1.判断是否为文件夹,如果不是,则直接返回文件名称 - 2.如果是文件夹,则列出其下所有的内容(文件、文件夹) - 3.如果列出的内容中某个项目是文件夹,则继续深入列出其下所有的内容 - */ - // 使用同步方法,获得指定路径的状态,判断是文件夹还是文件 - let filestat = fs.statSync(filepath).isFile() - // 如果是文件,直接推送到数组中 - if (filestat) { - //调用数组的push方法,将一个对象插入到数组的尾部 - arr.push(filepath) - } - // 如果是文件夹 - else { - // 如果是文件夹,则利用readdirSync方法,读取目录中的所有的内容(包含文件和文件夹) - // readFileSync: 读取文件中的内容 - // readdirSync: 读取文件名 - let patharr = fs.readdirSync(filepath) - // 如果是空文件夹,直接推送到数组中 - if(patharr.length === 0){ - arr.push(filepath) - } - // 遍历非空目录下的所有内容项目,再利用当前方法listAllFile来处理对应路径的信息(重点理解) - patharr.forEach((item) => { - // 判断filePath最后一个字符是否为/ - let lastfindsign = filepath.lastIndexOf('/') === filepath.length - 1 - // filePath如果最后一个是/,那么就和item直接拼接就可以,否则需要再加一个/ - let lastsym = lastfindsign ? filepath + item : `${filepath}/${item}` - // 拿到处理好的路径以后,直接调用listall函数继续处理,拿到的结果lastsym和原结果newarr合并, - // 再重新赋值给原结果resArr - let newarr = listall(lastsym) - arr = arr.concat(newarr) - }); - } - // 返回最后结果 - return arr -} -console.log(listall('./')); diff --git "a/\351\202\271\347\246\217\347\247\221/20240303-\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271\344\270\216\346\237\245\347\234\213\346\226\207\344\273\266\345\244\271\347\212\266\346\200\201.md" "b/\351\202\271\347\246\217\347\247\221/20240303-\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271\344\270\216\346\237\245\347\234\213\346\226\207\344\273\266\345\244\271\347\212\266\346\200\201.md" deleted file mode 100644 index f944f4a80fbca866e3f66910020078374cbcb8be..0000000000000000000000000000000000000000 --- "a/\351\202\271\347\246\217\347\247\221/20240303-\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271\344\270\216\346\237\245\347\234\213\346\226\207\344\273\266\345\244\271\347\212\266\346\200\201.md" +++ /dev/null @@ -1,28 +0,0 @@ -### fs 模块读取文件夹 -1. ``fs.readdir(path[,options],callback)`` --- 异步读取 -``` - fs.readdir('./node_demo',(err,data)=>{ - if(err) console.log(err) - console.log(data) - }) - - 返回的是一个数组,内容为读取的目录中的每个文件夹名或者文件名 - eg: ['./zz','./tt.txt','./zz/kk.txt'] -``` -2. ``fs.readdirSync(path[,options])`` --- 同步读取 -``` - let data = fs.readdirSync('./node_demo') - console.log(data) //['./zz','./tt.txt','./zz/kk.txt'] -``` - -### fs 模块查看资源状态,查看是文件夹还是文件 -1. ``fs.stat(path[,options],callback)`` --- 异步查看 -2. ``fs.statSync(path[,options])`` --- 同步查看 -``` - 常见的搭配结果值对象解构: - size 文件体积 - birthtime 创建时间 - mtime 最后修改时间 - isFile 检测是否为文件 - isDirectory 检测是否为文件夹 -``` \ No newline at end of file diff --git "a/\351\203\255\345\205\201\346\226\214/20240209-\345\256\211\350\243\205nodejs\345\222\214\345\214\205.md" "b/\351\203\255\345\205\201\346\226\214/20240209-\345\256\211\350\243\205nodejs\345\222\214\345\214\205.md" deleted file mode 100644 index 56d83fd355ee7e031ff5d23ec67aa249c714e199..0000000000000000000000000000000000000000 --- "a/\351\203\255\345\205\201\346\226\214/20240209-\345\256\211\350\243\205nodejs\345\222\214\345\214\205.md" +++ /dev/null @@ -1,37 +0,0 @@ -## 什么是 Node? -Node(正式名称 Node.js)是一个开源的、跨平台的运行时环境,有了它,开发人员可以使用 JavaScript 创建各种服务器端工具和应用程序。此运行时主要用于浏览器上下文之外(即可以直接运行于计算机或服务器操作系统上)。据此,该环境省略了一些浏览器专用的 JavaScript API,同时添加了对更传统的 OS API(比如 HTTP 库和文件系统库)的支持。 - -- 从 web 服务器开发的角度来看,Node 有很多好处: - -1. 卓越的性能表现!Node 为优化 web 应用的吞吐量和扩展度而生,对常见的 web 开发问题是一套绝佳方案(比如实时 web 应用)。 -2. 代码还是熟悉的老伙伴 JavaScript,这意味着在客户端和服务器端“上下文切换”的时间成本更低。 -3. 与传统的 web 服务器语言(例如 Python、PHP 等)相比,JavaScript 理念更新,语言设计的改进带来了诸多好处。许多其他新近流行的语言也可编译/转换成 JavaScript,所以 TypeScript、CoffeeScript、ClojureScript、Scala、LiveScript 等等也可以使用。 -4. Node 包管理工具(node package manager,NPM)提供了数十万个可重用的工具包。它还提供了一流的依赖解决方案,可实现自动化工具链构建。 -5. Node.js 是可移植的,可运行于 Microsoft Windows、macOS、Linux、Solaris、FreeBSD、OpenBSD、WebOS 和 NonStop OS。此外,许多 web 主机供应商对其提供了良好支持(包括专用的基础框架和构建 Node 站点的文档)。 - -### 使用 NPM -构建 Node 应用过程中,NPM 是除了 Node 本身之外最重要的工具。可用于获取应用开发、测试以及生产所需的所有包(JavaScript 库)。也可运行开发过程中使用的测试单元和工具。 -#### 查看 npm 的版本 -- npm -v //安装成功会返回版本号 -#### 查看各个命令的简单用法 -- npm -l -#### 查看 npm 命令列表 -- npm help -#### 查看 npm 的配置 -- npm config list -l - -#### npm init 创建模块 -npm init用来初始化生成一个新的package.json文件。它会向用户提问一系列问题,如果觉得不用修改默认配置,一路回车就可以了。 - -尾缀带-f(代表force)、-y(代表yes),则跳过提问阶段,直接生成一个新的package.json文件,不带尾缀的话,默认有提问阶段。 -#### npm search 搜索模块 -npm search命令用于搜索npm仓库,它后面可以跟字符串,也可以跟正则表达式。 -#### npm list 查看模块 -- 当前项目安装的所有模块 -npm list -- 列出全局安装的模块 带上[--depth 0] 不深入到包的支点 更简洁 -npm list -g --depth 0 -#### npm install 安装模块 -读取package.json里面的配置单安装 -$ npm install -//可简写成 npm i \ No newline at end of file diff --git "a/\351\203\255\345\205\201\346\226\214/20240301-\345\257\274\345\205\245\346\250\241\345\235\227\345\222\214\346\232\264\351\234\262.md" "b/\351\203\255\345\205\201\346\226\214/20240301-\345\257\274\345\205\245\346\250\241\345\235\227\345\222\214\346\232\264\351\234\262.md" deleted file mode 100644 index a2ee885e99c1d1ca88fab87d40651003e0b1498c..0000000000000000000000000000000000000000 --- "a/\351\203\255\345\205\201\346\226\214/20240301-\345\257\274\345\205\245\346\250\241\345\235\227\345\222\214\346\232\264\351\234\262.md" +++ /dev/null @@ -1,27 +0,0 @@ -### 什么是模块化与模块 ? -1. 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化 -2. 其中拆分出的 每个文件就是一个模块 ,模块的内部数据是私有的,不过模块可以暴露内部数据便便其他模块使用 - -### 暴露数据 -模块暴露数据的方式有两种: -1. module.exports = value -2. exports.name = value - ``` -1. module.exports 可以暴露 任意 数据 -2. 不能使用 exports = value 的形式暴露数据,模块内部 module 与 exports 的隐式关系 -exports = module.exports = {} ,require 返回的是目标模块中 module.exports 的值 - ``` - - #### 导入(引入)模块 - require 使用的一些注意事项: -1. 对于自己创建的模块,导入时路径建议写 相对路径 ,且不能省略 ./ 和 ../ -2. js 和 json 文件导入时可以不用写后缀,c/c++编写的 node 扩展文件也可以不写后缀,但是一 -般用不到 -3. 如果导入其他类型的文件,会以 js 文件进行处理 -4. 如果导入的路径是个文件夹,则会 首先 检测该文件夹下 package.json 文件中 main 属性对应 -的文件, -如果存在则导入,反之如果文件不存在会报错。 -如果 main 属性不存在,或者 package.json 不存在,则会尝试导入文件夹下的 index.js 和 -index.json , -如果还是没找到,就会报错 -5. 导入 node.js 内置模块时,直接 require 模块的名字即可,无需加 ./ 和 ../ \ No newline at end of file diff --git "a/\351\203\255\345\205\201\346\226\214/20240302-fs\346\250\241\345\235\227\345\206\231\345\205\245.md" "b/\351\203\255\345\205\201\346\226\214/20240302-fs\346\250\241\345\235\227\345\206\231\345\205\245.md" deleted file mode 100644 index 6a0b1ed2c72c684b9e4288bd620c98d403d89af3..0000000000000000000000000000000000000000 --- "a/\351\203\255\345\205\201\346\226\214/20240302-fs\346\250\241\345\235\227\345\206\231\345\205\245.md" +++ /dev/null @@ -1,51 +0,0 @@ -## fs 模块 -fs 全称为 file system ,称之为 文件系统 ,是 Node.js 中的 内置模块 ,可以对计算机中的磁盘进行操 -作。 -- writeFile 异步写入 -- writeFileSync 同步写入 -- appendFile / appendFileSync 追加写入 -- createWriteStream 流式写入 -#### writeFile 异步写入 -语法: fs.writeFile(file, data[, options], callback) -参数说明: -file 文件名 -data 待写入的数据 -options 选项设置 (可选) -callback 写入回调 -返回值: undefined -``` -const fs = require('fs'); -//将 『三人行,必有我师焉。』 写入到当前文件夹下的『座右铭.txt』文件中 -fs.writeFile('./座右铭.txt', '三人行,必有我师焉。', err => { -//如果写入失败,则回调函数调用时,会传入错误对象,如写入成功,会传入 null -if(err){ -console.log(err); -return; -} -console.log('写入成功'); -}); - -``` -###### 同步写入大体一样只是没有callback参数 -#### appendFile / appendFileSync 追加写入 -appendFile 作用是在文件尾部追加内容,appendFile 语法与 writeFile 语法完全相同 -语法: -fs.appendFile(file, data[, options], callback) -fs.appendFileSync(file, data[, options]) -返回值: 二者都为 undefined -``` -fs.appendFile('./座右铭.txt','择其善者而从之,其不善者而改之。', err => { -if(err) throw err; -console.log('追加成功') -}); -fs.appendFileSync('./座右铭.txt','\r\n温故而知新, 可以为师矣'); -``` -#### createWriteStream 流式写入 -语法: fs.createWriteStream(path[, options]) -参数说明: -path 文件路径 -options 选项配置( 可选 ) -返回值: Object -##### 注意 -程序打开一个文件是需要消耗资源的 ,流式写入可以减少打开关闭文件的次数。 -流式写入方式适用于 大文件写入或者频繁写入 的场景, writeFile 适合于 写入频率较低的场景 diff --git "a/\351\203\255\345\205\201\346\226\214/20240303-fs\346\250\241\345\235\227\350\257\273\345\217\226.md" "b/\351\203\255\345\205\201\346\226\214/20240303-fs\346\250\241\345\235\227\350\257\273\345\217\226.md" deleted file mode 100644 index b1cc06ed8eaf60f351398fa80041005794e97949..0000000000000000000000000000000000000000 --- "a/\351\203\255\345\205\201\346\226\214/20240303-fs\346\250\241\345\235\227\350\257\273\345\217\226.md" +++ /dev/null @@ -1,37 +0,0 @@ -### fs模块文件读取 -- readFile 异步读取 -- readFileSync 同步读取 -- createReadStream 流式读取 - -#### readFile 异步读取 -语法: fs.readFile(path[, options], callback) -参数说明: -path 文件路径 -options 选项配置 -callback 回调函数 -返回值: undefined -``` -const fs = require('fs'); - -fs.readFile('./座右铭.txt', 'utf-8',(err, data) => { -if(err) throw err; -console.log(data); -}); -``` -#### readFileSync 同步读取 -语法: fs.readFileSync(path[, options]) -参数说明: -path 文件路径 -options 选项配置 -返回值: string | Buffer -``` -let data2 = fs.readFileSync('./座右铭.txt', 'utf-8'); -``` -#### createReadStream 流式读取 -语法: fs.createReadStream(path[, options]) -参数说明: -path 文件路径 -options 选项配置( 可选 ) -返回值: Object - - diff --git "a/\351\231\206\345\260\217\350\220\215/20240229-node\345\256\211\350\243\205\345\217\212\345\237\272\347\241\200\347\237\245\350\257\206.md" "b/\351\231\206\345\260\217\350\220\215/20240229-node\345\256\211\350\243\205\345\217\212\345\237\272\347\241\200\347\237\245\350\257\206.md" deleted file mode 100644 index f61d8f764160905460409b478d56c3eb978f1576..0000000000000000000000000000000000000000 --- "a/\351\231\206\345\260\217\350\220\215/20240229-node\345\256\211\350\243\205\345\217\212\345\237\272\347\241\200\347\237\245\350\257\206.md" +++ /dev/null @@ -1,26 +0,0 @@ -## 软件安装 -``` - -安装Node.js -目前Node.js的最新版本是13.5.x。首先,从Node.js官网下载对应平台的安装程序,网速慢的童鞋请移步国内镜像。 -12.7 -在Windows上安装时务必选择全部组件,包括勾选Add to Path。 - -安装完成后,在Windows环境下,请打开命令提示符,然后输入node -v,如果安装正常,你应该看到v7.6.0这样的输出: - -C:\Users\IEUser>node -v -v7.6.0 - -继续在命令提示符输入node,此刻你将进入Node.js的交互环境。在交互环境下,你可以输入任意JavaScript语句,例如100+200,回车后将得到输出结果。 - -要退出Node.js环境,连按两次Ctrl+C。 - -在Mac或Linux环境下,请打开终端,然后输入node -v,你应该看到如下输出: - -$ node -v -v10.15.3 -``` -``` -认识npm: -npm其实是Node.js的包管理工具(package manager)。npm可以根据依赖关系,把所有依赖的包都下载下来并管理起来。 -``` \ No newline at end of file diff --git "a/\351\231\206\345\260\217\350\220\215/20240301-node\345\274\200\345\217\221\347\216\257\345\242\203\345\217\212\346\250\241\345\235\227.md" "b/\351\231\206\345\260\217\350\220\215/20240301-node\345\274\200\345\217\221\347\216\257\345\242\203\345\217\212\346\250\241\345\235\227.md" deleted file mode 100644 index af6e5c3cf5c5d2b1b875e606e0efd9a43c934bba..0000000000000000000000000000000000000000 --- "a/\351\231\206\345\260\217\350\220\215/20240301-node\345\274\200\345\217\221\347\216\257\345\242\203\345\217\212\346\250\241\345\235\227.md" +++ /dev/null @@ -1,29 +0,0 @@ -## 搭建Node开发环境 -``` -安装Visual Studio Code,运行和调试JavaScript。VS Code以文件夹作为工程目录(Workspace Dir),所有的JavaScript文件都存放在该目录下。 -``` -## 模块 -``` -1.在Node环境中,一个.js文件就称之为一个模块(module)。 -2.模块的好处:最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Node内置的模块和来自第三方的模块。 -3.使用模块还可以避免函数名和变量名冲突。 -例如: -var s = 'Hello'; - -function greet(name) { - console.log(s + ', ' + name + '!'); -} - -module.exports = greet; -把函数greet作为模块的输出暴露出去,这样其他模块就可以使用greet函数了。 -其它函数咋样使用greet? -// 引入hello模块: -var greet = require('./hello'); - -var s = 'Michael'; - -greet(s); // Hello, Michael! -注意到引入hello模块用Node提供的require函数: - -var greet = require('./hello'); -``` \ No newline at end of file diff --git "a/\351\231\206\345\260\217\350\220\215/20240302-node\346\250\241\345\235\227.md" "b/\351\231\206\345\260\217\350\220\215/20240302-node\346\250\241\345\235\227.md" deleted file mode 100644 index 9c94ddb0b8215a9bf984486613f8845d0906e98c..0000000000000000000000000000000000000000 --- "a/\351\231\206\345\260\217\350\220\215/20240302-node\346\250\241\345\235\227.md" +++ /dev/null @@ -1,36 +0,0 @@ -## 基本模块 -``` -Node.js内置的常用模块就是为了实现基本的服务器功能。这些模块在浏览器环境中是无法被执行的,因为它们的底层代码是用C/C++在Node.js运行环境中实现的。 -``` - -# global -``` -在Node.js环境中,global是唯一的全局对象,进入Node.js交互环境, -可直接输入:>global.console -Console { - log: [Function: bound ], - info: [Function: bound ], - warn: [Function: bound ], - error: [Function: bound ], - dir: [Function: bound ], - time: [Function: bound ], - timeEnd: [Function: bound ], - trace: [Function: bound trace], - assert: [Function: bound ], - Console: [Function: Console] } -``` -# Process -``` -process也是Node.js提供的一个对象,它代表当前Node.js进程。 -例如: ->process===global.process; -true ->process.version; -'v5.2.0' -``` -# 引入模块 -``` -Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。 -示例,hello.js 通过 exports 对象把 world 作为模块的访问接口,在 main.js 中通过 require('./hello') 加载这个模块,然后就可以直接访 问 hello.js 中 exports 对象的成员函数了。 -``` - diff --git "a/\351\231\210\344\275\263\344\270\275/20240229-\345\256\211\350\243\205node.md" "b/\351\231\210\344\275\263\344\270\275/20240229-\345\256\211\350\243\205node.md" deleted file mode 100644 index e7f46876b45bd29ff4508203407f46d80380415a..0000000000000000000000000000000000000000 --- "a/\351\231\210\344\275\263\344\270\275/20240229-\345\256\211\350\243\205node.md" +++ /dev/null @@ -1,18 +0,0 @@ -## 安装node和npm - 官网选择LTS安装 -## 查看node.js版本号 -终端输入命令 -``` -node -v -``` -## npm -npm是Node.js的包管理工具(package manager)。 -``` -npm init ====>初始化一个新的npm项目 -npm -v ====>检测npm是否安装 -npmm i koa ====>镜像 -``` -## 执行node代码 -``` -node 要执行js文件的路径 -``` \ No newline at end of file diff --git "a/\351\231\210\344\275\263\344\270\275/20240301-\346\250\241\345\235\227.md" "b/\351\231\210\344\275\263\344\270\275/20240301-\346\250\241\345\235\227.md" deleted file mode 100644 index 30818d1aa8d1f7f698093a0218cae4b3e7356577..0000000000000000000000000000000000000000 --- "a/\351\231\210\344\275\263\344\270\275/20240301-\346\250\241\345\235\227.md" +++ /dev/null @@ -1,34 +0,0 @@ -## 模块 -在node环境中,一个.js文件就称之为一个模块(module). - -当一个模块编写完毕,就可以被其他地方引用。 -## 模块引用 -1. 暴露函数 -``` -hello.js - var s ='Hello'; - function fn(name){ - console.log(s + ',' +name+'!'); - } - module.exports = fn //(将函数fn作为模块的输出暴露出去,其他模块可以使用fn函数了) -``` -2. 其他模块引用函数 -``` -main.js - - var fn = require('./hello'); - var s = 'MM'; - fn(s);//Hello,MM! - -其中require函数的引用代表,引入的模块作为变量保存在fn变量中,所以main.js模块中引用了fn()函数,可以在main.js中使用它了。 -``` -## 总结 -要在模块中对外输出变量,用: - -module.exports = var; - -输出的变量可以是任意对象、函数、数组等等。 - -要引入其他模块输出的对象,用: - -var foo = require('other_module'); \ No newline at end of file diff --git "a/\351\231\210\344\275\263\344\270\275/20240302-\345\237\272\346\234\254\346\250\241\345\235\227.md" "b/\351\231\210\344\275\263\344\270\275/20240302-\345\237\272\346\234\254\346\250\241\345\235\227.md" deleted file mode 100644 index a06ad7950d848ad1070fc27eea3dee7b5469a044..0000000000000000000000000000000000000000 --- "a/\351\231\210\344\275\263\344\270\275/20240302-\345\237\272\346\234\254\346\250\241\345\235\227.md" +++ /dev/null @@ -1,78 +0,0 @@ -## global -JavaScript有且仅有一个全局对象,在浏览器中,叫window对象。而在Node.js环境中,也有唯一的全局对象,叫global; -``` -global.console.log(''); -console.log('') -``` -## process -通过process对象可以拿到许多信息: -``` -process.version; -'v5.2.0' -> process.platform; -'darwin' -> process.arch; -'x64' -``` -## 判断js的执行环境 -``` -if (typeof(window) === 'undefined') { - console.log('node.js'); -} else { - console.log('browser'); -} -``` -## 同步、异步 -同步:代码简单,程序将等待IO操作(程序运行有先后顺序) -异步:不用等待IO操作,但代码较麻烦(程序运行无顺序) -## fs读取文件 -异步读取文件: -``` -var fs = require('fs'); - -fs.readFile('sample.txt', 'utf-8', function (err, data) { - if (err) { - console.log(err); - } else { - console.log(data); - } -}); - -``` -同步读取文件: -``` -var fs = require('fs'); - -var data = fs.readFileSync('sample.txt', 'utf-8'); -console.log(data); -``` -## fs写文件 -异步写文件 -``` -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFile('output.txt', data, function (err) { - if (err) { - console.log(err); - } else { - console.log('ok.'); - } -}); -``` -同步写文件 -``` -var fs = require('fs'); - -var data = 'Hello, Node.js'; -fs.writeFileSync('output.txt', data); -``` - -### 追加写入 -若 fs.writeFile() 不添加配置 则是替换式写入, -``` -追加式写入 -fs.writeFile(x,x,{flag:'a'},x); -fs.appendFile(x,x,x,x); -fs.appendFileSync(x,x,) -``` diff --git "a/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/0229nodejs\345\256\211\350\243\205\344\270\216\345\210\235\345\247\213\345\214\226\347\250\213\345\272\217.md" "b/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/0229nodejs\345\256\211\350\243\205\344\270\216\345\210\235\345\247\213\345\214\226\347\250\213\345\272\217.md" deleted file mode 100644 index 305c12ae25832907d162e30fb747f06da28cf72d..0000000000000000000000000000000000000000 --- "a/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/0229nodejs\345\256\211\350\243\205\344\270\216\345\210\235\345\247\213\345\214\226\347\250\213\345\272\217.md" +++ /dev/null @@ -1,20 +0,0 @@ -# Nodejs -1. Nodejs是一个应用软件 -2. 用于运行JavaScript的一个平台 -3. 采用交互模式:在终端输入命令代码就可以得到结果 - -## Nodejs 下载与安装 -* 在浏览器搜索Nodejs 进入官网,下载LTS版本(LTS版本支持更长时间),安装一直下一步即可。 -### 查看Nodejs 是否安装成功与是否符合所需版本 -* 在windows操作系统中,打开终端输入命令(node -v)即可查看是否安装与是否是所需的版本。 -## npm是什么 -* npm是用来管理nodejs的依赖包的工具 -### 更改npm的镜像源 -* npm config grt registry 获得地址 -* npm config set registry -## npm下载依赖包 -* npm install 下载package.json里配置的所有依赖包 -## nodejs与环境变量的关系 -* 配置了环境变量后可在终端的任意路径下来使用nodejs -## nvm -* nvm 是用来管理nodejs版本的工具 \ No newline at end of file diff --git "a/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/0301\346\250\241\345\235\227.md" "b/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/0301\346\250\241\345\235\227.md" deleted file mode 100644 index 6336fb8f34991d282bc4625066117ccb51433871..0000000000000000000000000000000000000000 --- "a/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/0301\346\250\241\345\235\227.md" +++ /dev/null @@ -1,21 +0,0 @@ -# Nodejs 模块 -## 模块化与模块 -1. 模块化就是将一个复杂的程序,规划成多个文件的过程称之为模块化 -2. 模块就是规划出来的各个文件 -3. 模块化的好处: -(1) 防止命名冲突 -(2) 高复用性 -(3) 高实用性 - -## 模块暴露数据 -### 模块化步骤 -* 创建模块 --声明数据--暴露数据(module.exports=数据)--创建另一个模块--导入模块(let xxx = require(模块路径))--调用数据 - -## 暴露数据 -### 暴露数据的两种方式 -1. module.exports = value (可以暴露任意数据) -2. exports.name = value -## 导入模块 -* let xxx = require(路径) - - diff --git "a/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/20240302-fs\345\206\205\347\275\256\346\250\241\345\235\227-import~from\346\232\264\351\234\262\346\226\271\345\274\217.md" "b/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/20240302-fs\345\206\205\347\275\256\346\250\241\345\235\227-import~from\346\232\264\351\234\262\346\226\271\345\274\217.md" deleted file mode 100644 index 984d48b174b85a8227691644f4bb7f5f1871ec4a..0000000000000000000000000000000000000000 --- "a/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/20240302-fs\345\206\205\347\275\256\346\250\241\345\235\227-import~from\346\232\264\351\234\262\346\226\271\345\274\217.md" +++ /dev/null @@ -1,42 +0,0 @@ -# fs内置模块 -* fs 全称为 file system ,称之为 文件系统 ,是 Node.js 中的 内置模块 ,可以对计算机中的磁盘进行操作。 -## fs内置模块的使用 -## fs异步读取方式 -* 语法:fs.readFile("path(文件路径)","options(选项配置)utf-8",callback(回调函数)) -``` -例: -let fs = require("fs") -fs.readFile("./xx.txt","utf-8",(err,data)=>{ - if(err){ - console.log(err) - } - else{ - console.log(data) - } -}) -``` -## fs异步写入方式 -* 语法: fs.writeFile("path(文件路径)","data写入的数据","options(选项设置)默认utf-8",{flag:"a"(追加),"w"(覆盖)},callback(回调函数)) -``` -let fs = require("fs") -fs.writeFile("./xx.txt","kunkun",{flag:"a"},(err)=>{ - if(err){ - console.log(err) - } -}) -``` -## export & import ~ from 暴露数据和获取数据 -1. 先将package.json里的type配置为module -2. 再在需要暴露数据的模块中用export {xxx}来暴露文件 -3. 然后在需要获取数据的模块用 import ~ from来导入模块 -``` -例: -在暴露数据的模块中: -function fn(){ - console.log("abc") -} -exports{adc} -在获取数据的模块中: -import {abc} from "./xxx" -abc() -``` \ No newline at end of file diff --git "a/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/20240303\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271.md" "b/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/20240303\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271.md" deleted file mode 100644 index 7e813d7a33fddaab9f40f4dbce68e2ce2eb64020..0000000000000000000000000000000000000000 --- "a/\351\231\210\344\277\212\350\261\252Nodejs\347\254\224\350\256\260/20240303\350\257\273\345\217\226\346\226\207\344\273\266\345\244\271.md" +++ /dev/null @@ -1,38 +0,0 @@ -# writeFileSync 同步写入 -* 语法:fs.writeFileSync(路径,写入文件) -``` -例子: -let fs = require("fs") -let a = fs.writeFileSync("./xxx","眼鼻嘴",{flag:"a"}) -console.log(a) -``` -# readFileSync同步读取 -* 语法:fs.readFileSyn("路径","utf-8") -``` -例子: -let fs =require("fs") -let b = fs.readFileSync("./xxx","utf-8") -console.log(b) -``` -# readdir异步读取文件夹/readdirSync读取文件夹 -* 返回结果为一个数组 -* readdir语法:fs.readdir(path路径,callback(err,files)) -``` -例子: -let fs = require("fs") -fs.readdir("./",function(err,data){ - if(err){ - console.log(err) - } - console.log(data) -}) -``` -* readdirSync语法:fs.readdir("path路径",options) -``` -let fs = require("fs") -let c = fs.readdirSync("./") -console.log(c) -``` -* fs.stat获取文件的信息 -* isFile检查是否是文件 -* isDirectory检测是否是文件夹 \ No newline at end of file diff --git "a/\351\231\210\345\256\227\344\271\211/20240229_node.\345\210\235\350\257\206.md" "b/\351\231\210\345\256\227\344\271\211/20240229_node.\345\210\235\350\257\206.md" deleted file mode 100644 index 8eb3503c898643c9aaebc3a03655f22e98dce139..0000000000000000000000000000000000000000 --- "a/\351\231\210\345\256\227\344\271\211/20240229_node.\345\210\235\350\257\206.md" +++ /dev/null @@ -1,25 +0,0 @@ -### 安装node.js -1. 找到node官网,选择lst长期稳定版进行下载安装即可 -2. 打开终端,输入node -v命令,显示node版本号的话,说明安装成功 -3. node是一种运行环境,可以结局JavaScript只能在1前端运行的弊端。 - -### npm 依赖包换源 -1. 原来的包下载地址是国外网站。国内访问相对较慢,还原获得更好的下载体验。 -2. 通过npm配置 -``` -查看当前地址:npm config get registry - -修改当前地址:npm config set registry 想要的地址 -``` - -### npm(包管理器) 和nvm(项目版本管理器) -``` -1. npm i(install) --安装所有依赖 -2. nvm -v --查看当前nvm版本号 - -``` - -### 创建一个简单node文件 -1. 新建一个js文件 -2. 找到文件所在地址 -3. 使用 ```node js 运行node文件 ``` diff --git "a/\351\231\210\345\256\227\344\271\211/20240301_\347\216\257\345\242\203\345\217\230\351\207\217.md" "b/\351\231\210\345\256\227\344\271\211/20240301_\347\216\257\345\242\203\345\217\230\351\207\217.md" deleted file mode 100644 index a0ebe514cfa1c91910540a57b74b785cbd6117eb..0000000000000000000000000000000000000000 --- "a/\351\231\210\345\256\227\344\271\211/20240301_\347\216\257\345\242\203\345\217\230\351\207\217.md" +++ /dev/null @@ -1,7 +0,0 @@ -### 环境变量 -1. 不可以把系统配置的path删除nodejs文件,否则的话,node 命令无法被识别。 -2. 把应用的路径配置在环境变量中,可以通过终端快速启动 -### 使用命令初始化一个node.js项目 -``` -npm init -y -y表示默认所有json配置,不用一个一个确认。 -``` \ No newline at end of file diff --git "a/\351\231\210\345\256\227\344\271\211/20240302_fs\346\226\207\344\273\266\346\250\241\345\235\227.md" "b/\351\231\210\345\256\227\344\271\211/20240302_fs\346\226\207\344\273\266\346\250\241\345\235\227.md" deleted file mode 100644 index e7b4b39a140b4d8197564c6f78d271292098fbd4..0000000000000000000000000000000000000000 --- "a/\351\231\210\345\256\227\344\271\211/20240302_fs\346\226\207\344\273\266\346\250\241\345\235\227.md" +++ /dev/null @@ -1,16 +0,0 @@ -### 两种模式暴露模块和引入模块 -1. 使用module.exports=add方式暴露,搭配require()来接收 -2. 使用export{add} 进行暴露,搭配import {add} from文件路径来接收(ES6语法,需要添加json中type配置) - - -### fs模块 -``` -1. 读取文档 -fs.readFlie(文件路径,字符集,回调函数(err,data)) -2. 修改文档 -fs.writeFlie(文件路径,回调函数(err)) -``` - -### 同步和异步 -1. 同步:按照浏览器的执行顺序单步执行 -2. 异步:可以同时执行多个线程,不会卡死 diff --git "a/\351\231\210\345\256\227\344\271\211/20240303_fs\346\250\241\345\235\227\347\273\206\345\210\231.md" "b/\351\231\210\345\256\227\344\271\211/20240303_fs\346\250\241\345\235\227\347\273\206\345\210\231.md" deleted file mode 100644 index 404abef6d804c433f81af93dc42332af0fadc537..0000000000000000000000000000000000000000 --- "a/\351\231\210\345\256\227\344\271\211/20240303_fs\346\250\241\345\235\227\347\273\206\345\210\231.md" +++ /dev/null @@ -1,8 +0,0 @@ -1. fs.readFile 异步读取文件 -2. fs.readFileSync 同步读取文件 -3. fs.writeFlie 异步修改、增加文件 -4. fs.writeFileSync 同步修改、增加文件 -5. fs.Dir 异步读取文件夹 -6. fs.DirSync 同步读取文件夹 -7. fs.isFlie 同步判断是否为文件 -8. fs.stat 判断路径状态 diff --git "a/\351\231\210\346\264\201\346\242\205/20240229-nodejs\345\256\211\350\243\205.md" "b/\351\231\210\346\264\201\346\242\205/20240229-nodejs\345\256\211\350\243\205.md" deleted file mode 100644 index dc6f1f8e2d99b4bf95b5e9bbf4414b03134e383d..0000000000000000000000000000000000000000 --- "a/\351\231\210\346\264\201\346\242\205/20240229-nodejs\345\256\211\350\243\205.md" +++ /dev/null @@ -1,45 +0,0 @@ -## Node.js - -Node.ja对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。 - -### Nodejs的应用场景 - -Node.js 是一个非常灵活和高效的运行时环境,适用于各种应用场景。以下是一些常见的 Node.js 应用场景: - -1. 中间层 - -通常在开发应用时,出于安全考虑,后端的主服务器都不会直接暴露给客户端,两端之间通常需要有一个中间层进行通信。 - -这样做的好处是,如果中间层出现问题,不会影响后端的主服务器。另外,中间层可以做缓存,或者实现一些业务逻辑,起到降低主服务器复杂度,提高性能的作用。 - -2. 实时应用程序 - -Node.js 的事件驱动架构使其非常适合构建实时应用程序,如即时聊天应用、实时协作工具、多人游戏等。它的高并发能力和实时数据推送功能使得实时应用程序的开发变得更加容易和高效。 - -3. 前端工具和构建工具 - -Node.js 提供了许多有用的工具和模块,可以帮助前端开发人员进行构建、打包、压缩和优化前端资源。例如,Webpack、Gulp 和 Babel 等工具。 - - -### Node和Npm的命令语句 - -测试Node下载的版本的命令:node -v -测试Npm下载的版本的命令:npm -v - -- Npm的一些常用指令: - -1. npm -v :查看npm当前版本 - -2. npm install :会根据项目中的package。json文件自动下载项目所需的全部依赖 - -3. npm install -g npm :将npm更新到当前最新版本 - -4. npm update 包名:更新指定包 - -5. npm uninstall 包名:卸载指定包 - -6. npm config list:查看配置信息 - -7. npm init -y :初始化一个新项目 - -8. npm init -h :查询帮助 \ No newline at end of file diff --git "a/\351\231\210\346\264\201\346\242\205/20240301-\346\220\255\345\273\272node\345\274\200\345\217\221\347\216\257\345\242\203.md" "b/\351\231\210\346\264\201\346\242\205/20240301-\346\220\255\345\273\272node\345\274\200\345\217\221\347\216\257\345\242\203.md" deleted file mode 100644 index 8df593609cd293517b9e2e06777800a11446a8f2..0000000000000000000000000000000000000000 --- "a/\351\231\210\346\264\201\346\242\205/20240301-\346\220\255\345\273\272node\345\274\200\345\217\221\347\216\257\345\242\203.md" +++ /dev/null @@ -1,25 +0,0 @@ -## 搭建一个node开发环境 - -npm init -h 查询帮助 - -npm init -y 初始化一个新项目 - -用F5创建一个调试文件(可随时切换想调试的js文件) -launch.js调试文件 - -模块:一个js文件就是一个模块 - -例如: - -```js -function fn(){ - console.log('你好!'); -} - -module.exports=fn;//暴露,fn可以是函数、直接是字符串、对象也可以是数组 - - -去引用 -let fn = require('./hello); -fn(); -``` \ No newline at end of file diff --git "a/\351\231\210\346\264\201\346\242\205/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\345\222\214\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\351\231\210\346\264\201\346\242\205/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\345\222\214\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index d32a42b3c208c6e1b0b4a46347e4b77bd7becb98..0000000000000000000000000000000000000000 --- "a/\351\231\210\346\264\201\346\242\205/20240302-\345\237\272\346\234\254\346\250\241\345\235\227\345\222\214\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,78 +0,0 @@ -## git - -- git remote -v 查询仓库地址(路径) - -- git push -f 强制推送 - -- git log 查询提交用户的信息 - -- dir 可查当前文件中有哪些文件 - -## 模块 - -```js -import {abc} from './you.js'; -coonsole.log(abc) -abc(); - - -let str ='abc'; -function abc(){console.log(555);} -export {abc}; - -``` - -import 和 export 搭配使用(后面多用此) -module.eports 和 require 搭配使用 - -```js -global.console.log(44); -console.log(33); -console.error(666); -console.warn(555);//类似无甚大区别 - -console.log(process);电脑运行信息等 - -``` - -### fs模块 - -异步:readFile -同步:read - -同步会卡,会失去响应,必须有先后顺序进程 -异步不会卡,可同时进行多个进程,无先后顺序 - - -### 读写文件 - -type="module" 写在package.json中 - - -```js -let fs=require('fs'); -fs.readFile('tt.txt','utf-8',(err,data)=>{ - if(err){ - console.log(err); - } - else{ - console.log(data); - } -}) - - - -fs.writeFile('tt.txt','中华人民共和国','utf-8',function(err){ - console.log(err); -}) - - - - - - -同步:fs.readFileSync('uu.txt','文字内容'); - console.log('写入成功') - - -``` \ No newline at end of file diff --git "a/\351\273\204\345\215\216\351\233\250/2024.02.29- node.js\345\256\211\350\243\205\345\217\212\351\225\234\345\203\217.md" "b/\351\273\204\345\215\216\351\233\250/2024.02.29- node.js\345\256\211\350\243\205\345\217\212\351\225\234\345\203\217.md" deleted file mode 100644 index d1580734a1afbac61f7fee550486c524384b8e4a..0000000000000000000000000000000000000000 --- "a/\351\273\204\345\215\216\351\233\250/2024.02.29- node.js\345\256\211\350\243\205\345\217\212\351\225\234\345\203\217.md" +++ /dev/null @@ -1,57 +0,0 @@ -## Node.js -### node.js简介 -``` -Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它是几乎任何类型项目的流行工具! - -Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)。 这使得 Node.js 非常高效。 - -Node.js 应用在单个进程中运行,无需为每个请求创建新线程。 Node.js 在其标准库中提供了一组异步 I/O 原语,以防止 JavaScript 代码阻塞,并且通常,Node.js 中的库是使用非阻塞范例编写的,这使得阻塞行为成为异常而不是常态。 - -当 Node.js 执行 I/O 操作时,如从网络读取、访问数据库或文件系统,Node.js 不会阻塞线程和浪费 CPU 周期等待,而是会在响应返回时恢复操作。 - -这使得 Node.js 可以使用单个服务器处理数千个并发连接,而不会引入管理线程并发的负担(这可能是错误的重要来源)。 - -Node.js 具有独特的优势,因为数百万为浏览器编写 JavaScript 的前端开发者现在除了客户端代码之外,还能够编写服务器端代码,而无需学习完全不同的语言。 - -在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,因为你不必等待所有用户更新他们的浏览器 - 你负责通过更改 Node.js 版本来决定使用哪个 ECMAScript 版本, 你还可以通过运行带有标志的 Node.js 来启用特定的实验性特性。 -``` -### node.js 安装 -``` -1.TypeScript:是js中强类型,开发大型项目 - -2.安装:官网node.js - 下载20.11.1 LTS - window+r 打开cmd - node -v 查看是否安装 - npm -v 包管理器,用于管理项目中的依赖包 - nvm:用于管理node版本的管理器 -``` - - -``` -新建文件夹 用vscode打开 - 终端:npm - npm install koa -vscode 出现:node_modeules:依赖包所处地点 - {}package-lock.json:锁定依赖包的版本 - {}package.json:真正项目的配置文件 -``` - -### 镜像 -下载后将镜像地址改为中国 -``` -国内npm源镜像(换源) -终端:ping registry.npmjs.org - -npm config get registry -npm config srt registry https://..... - -``` - - -### 其他 -``` -esc:清空终端输入命令 -cls:清空终端 -tab:补全路径 -``` \ No newline at end of file diff --git "a/\351\273\204\345\215\216\351\233\250/2024.03.01-\345\274\200\345\217\221\347\216\257\345\242\203,\346\250\241\345\235\227.md" "b/\351\273\204\345\215\216\351\233\250/2024.03.01-\345\274\200\345\217\221\347\216\257\345\242\203,\346\250\241\345\235\227.md" deleted file mode 100644 index d6e5eb900bcd0577e9e285782732d42757261cc7..0000000000000000000000000000000000000000 --- "a/\351\273\204\345\215\216\351\233\250/2024.03.01-\345\274\200\345\217\221\347\216\257\345\242\203,\346\250\241\345\235\227.md" +++ /dev/null @@ -1,66 +0,0 @@ -### 搭建Node开发环境 - -``` -在Mac系统上,Finder选中一个目录,右键菜单并没有“通过Code打开”这个操作。不过我们可以通过Automator自己添加这个操作。 - -先运行Automator,选择“服务”: - -automator-service - -然后,执行以下操作: - -在右侧面板选择“服务”收到选定的“文件夹”,位于“Finder.app“,该选项是为了从Finder中接收一个文件夹; 在左侧面板选择”实用工具“,然后找到”运行Shell脚本“,把它拽到右侧面板里; 在右侧”运行Shell脚本“的面板里,选择Shell”/bin/bash“,传递输入“作为自变量”,然后修改Shell脚本如下: - -for f in "$@" -do - open -a "Visual Studio Code" "$f" -done -保存为“Open With VSCode”后,打开Finder,选中一个文件夹,点击右键,“服务”,就可以看到“Open With VSCode”菜单: -``` - - -### 模板 -``` -在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。 - -为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Node环境中,一个.js文件就称之为一个模块(module)。 -``` - -``` -要在模块中对外输出变量,用: - -module.exports = variable; -输出的变量可以是任意对象、函数、数组等等。 - -要引入其他模块输出的对象,用: - -var foo = require('other_module'); -引入的对象具体是什么,取决于引入模块输出的对象。 -``` - -``` -例如: -//暴露:函数/字符串/对象...都可以实现 -hello.js:function fn(){ - console.log('哈哈哈哈哈'); -} -module.exports=fn; - -//引用: -app.js:let fn=require('./hello'); -fn(); - -终端:node app.js -``` -另外一种方法 -``` -//暴露:you.js -let str ='abc'; -function abc(){log('ffff')} -export {abc}==module.exports=abc - -//引用:app.js -import {abc} from './you'; -log(abc); -abc(); -``` \ No newline at end of file diff --git "a/\351\273\204\345\215\216\351\233\250/2024.03.02-\345\237\272\346\234\254\346\250\241\345\235\227.md" "b/\351\273\204\345\215\216\351\233\250/2024.03.02-\345\237\272\346\234\254\346\250\241\345\235\227.md" deleted file mode 100644 index 722cf01435b4cc469ff46272e1cac0a93972e891..0000000000000000000000000000000000000000 --- "a/\351\273\204\345\215\216\351\233\250/2024.03.02-\345\237\272\346\234\254\346\250\241\345\235\227.md" +++ /dev/null @@ -1,47 +0,0 @@ -### 基本模块 -javas中有一个特殊的对象,称为全局对象(global,object),它及其所有属性都可以在程序的任何地方访问,全局变量即全局对象的属性。 -#### global(全局) -``` -global.console.log(444); -console.log(5555); -console.warn(1111); -console.error(6666); -``` - -#### process - -process 是一个全局变量,即 global 对象的属性。 - -它用于描述当前Node.js 进程状态的对象,提供了一个与操作系统的简单接口。通常在你写本地命令行程序的时候,少不了要 和它打交道。 - -fs:node.js内置的fs模块,就是文件系统模块,负责读写文件 - -##### 同步,异步 -同步,异步: - Node.js中的 同步 方法和 异步 方法都是用于处理I/O操作的。 同步 方法会阻塞代码的执行,直到操作完成并返回结果。 而 异步 方法则不会阻塞代码的执行,而是在操作完成后通过回调函数返回结果。 - -同步:串联 - -异步:并联 - -``` -//引入: -var fs=require('fs'); -//异步:读 -fs.readFile('tt.txt','utf-8',(err,data)=>{ - if(err){console.log(err);}else{ - console.log(data); - } -}); -//写 -fs.writeFile('tt.txt','小屁孩,顾事业','utf-8',function(err){ - console.log(err); -}); - -//追加: -fs.writeFile('tt.txt','\nhhhhhhhh\n',{flag:'a'},function(err){ - console.log(err); -}); -console.log(fs.writeFile); - -``` \ No newline at end of file diff --git "a/\351\273\204\345\215\216\351\233\250/2024.03.03-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" "b/\351\273\204\345\215\216\351\233\250/2024.03.03-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" deleted file mode 100644 index a9bf6fd853a5094187a8a7776a99c3fd16179312..0000000000000000000000000000000000000000 --- "a/\351\273\204\345\215\216\351\233\250/2024.03.03-\346\226\207\344\273\266\347\263\273\347\273\237\346\250\241\345\235\227.md" +++ /dev/null @@ -1,38 +0,0 @@ -##### 注:有panckage.json文件才是一个标准的node.js项目 - -#### 同步读 (readFileSync) -``` -import fs from 'fs'; -let data=fs.readFileSync('xx.txt','uft-8'); -console.log(data); -``` - -#### 读文件夹 -``` -import fs from 'fs'; -//异步 -fs.readdir('./',(err,data)=>{ - data.foreach(item)=>{ - log(item); - fs.stat(item,(wrong,dirData)=>{ - let isDir=dirData.isDirectiry(); - if(isDir){ - fs.readdir(item,(kk,dd)=>{ - if(kk){log(kk)} - else{ - log(dd) - } - }) - } - }) - } -}) - -//注意:若出现多个则需要用递归的方法。 -``` - -``` -1.读取指定文件夹,列出所有的文件或文件夹 -2.遍历这些文件或者文件夹,判断是否是文件夹,是,则继续调用读取文件夹的方法 -3.一直重复第二步,直到将所有的内容都列出 -``` \ No newline at end of file