1.Node.js①下载安装②cmd交互③Buffer(缓冲器)④文件写入、读取、复制、移动+重命名、删除⑤文件夹创建、读取、删除⑥路径问题⑦查看是文件还是文件夹stat⑧换行\r\n⑨npm

本文详细介绍了Node.js的基础知识,包括其作用、应用场景及安装使用。重点讲解了Buffer对象,文件的写入(异步和同步API,流式写入)、读取(简单读取和流式读取)、复制、移动、重命名、删除操作。还涵盖了文件夹操作、路径处理、文件状态检查以及npm的使用。内容深入浅出,适合Node.js初学者参考。
摘要由CSDN通过智能技术生成

目录

一:介绍

二:作用

三:应用场景

四:使用

1.下载安装

2.初体验

①cmd交互模式

②退出交互模式 ctrl+c两次 ,,,,清平cls

③文件执行

④在VScode打开:右键js文件👉在集成终端打开 输入node 文件名.js

⑤VScode 插件运行

⑤注意

3.Buffer(缓冲器)

①介绍

②特点

③操作(十进制转二进制   ,    二进制转十进制String.fromCharCode()    ,     一堆二进制转成字符串.toString())

进制转换总结:

五:文件写入(在系统硬盘里):系统 fs

前提: let fs = require('fs')  引入fs模块

1.文件简单写入

①异步API   :  fs.writeFile(file , data , [,options] , callback); 代码执行顺序和写的顺序不统一,最后输出回调函数

②同步API   :  fs.writeFileSync(file, data , [,options] );   执行顺序和代码顺序一致

③关于用同步写还是用异步写:

2.练习:将一个对象data存入到电脑D盘内(记住先用JSON转成字符串)

3.文件流式写入   fs.createWriteStream(path,[ options])

4.什么时候用简单写入,什么时候用流式写入

①对于简单的写入次数较少的情况,可以使用 writeFile ;

②如果是批量要写入的场景,使用 createWriteStream  ;

六:文件读取

1.简单读取

①异步:    fs.readFile(‘文件名’, function(err, data){}) 回调函数有两个参数,

②同步:    fs.readFileSync(file)

③练习:JSON文件读取成JS

2.流式读取   fs.createReadStream(‘文件名’); 一点一点读取

七:复制文件

1.异步复制文件

2.流式复制文件

3.现成的方法  旧.pipe(新)

八:移动文件 + 重命名,有就重命名,没有就移动并且起名字

1.异步fs.rename('旧路径', '新路径', function(err){})

2.同步fs.renameSync('旧路径','新路径')

九:文件删除

1.异步:   fs.unlink('./test.log', function(err){});

2.同步: fs.unlinkSync('./move.txt');

十:文件夹操作

1.   mkdir('文件路径',回调函数err)创建文件夹

2.   readdir('文件路径',(err和files)) 读取文件夹 内的列表信息,也能读硬盘里的文件

3.   rmdir 删除文件夹(只能删除空的文件夹,不空不让删)

十一:路径问题:绝对路径__dirname,相对路径 

十二:查看文件状态stat是否是文件夹或者文件:

十三:  node.js文件内部写入:

1.换行  \r\n

2.读取Windows下的文件时用反斜线,两个反斜线是为了防止转义

十四:附录

unicode 字符集

十五:npm

①npm init

②package.json

③node_modules

④npm 使用步骤

⑤注意运行命令的位置

⑥npm i request -S   生产依赖

⑦npm i babel -D      开发依赖

⑧全局安装以下两个


一:介绍

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个应用程序。

官方网址中文站

二:作用

  • 解析运行 JS 代码并且操作系统资源,如内存、硬盘、网络

比如说js代码在浏览器运行时无法对计算机的硬盘进行写入和删除的操作,但是我们通过Node.js可以实现

三:应用场景

  • APP 接口服务

  • 网页聊天室

  • 动态网站, 个人博客, 论坛, 商城等

  • 后端的Web服务,例如服务器端的请求(爬虫),代理请求(跨域)

  • 前端项目打包(webpack, gulp)

四:使用

1.下载安装

工具一定要到官方下载,历史版本下载

 Nodejs 的版本号奇数为开发版本,偶数为发布版本,我们选择偶数号的 LTS 版本(长期维护版本 long term service)

双击打开安装文件,一路下一步即可😎,默认的安装路径是 C:\Program Files\nodejs

安装完成后,在 CMD 命令行窗口下运行 node -v,如显示版本号则证明安装成功,反之安装失败,重新安装。

2.初体验

①cmd交互模式

在命令行下输入命令 node,这时进入 nodejs 的交互模式

②退出交互模式 ctrl+c两次 ,,,,清平cls

③文件执行

创建文件 1.hello.js 写入

快速启动命令行的方法

  • 在文件夹上方的路径中,直接输入 cmd 即可在cmd内进入该路径

  • 然后输入 node 1.hello.js

④在VScode打开:右键js文件👉在集成终端打开 输入node 文件名.js

⑤VScode 插件运行

安装插件 『code Runner』, 文件右键 -> run code

⑤注意

在 nodejs 环境下,不能使用 BOM 和 DOM ,也没有全局对象 window,全局对象的名字叫 global

3.Buffer(缓冲器)

①介绍

Buffer 是一个和数组类似的对象,不同是 Buffer 是专门用来保存二进制数据的

②特点

  • 大小固定:在创建时就确定了,且无法调整

此处和数组不同,比如数组是创建一个a = [1,2,3]我们可以用数组的方式添加元素,

但是buffer只能一开始就规定内存为多大字节

  • 性能较好:直接对计算机的内存进行操作

  • 每个英文元素大小为 1 字节(byte)1字节等于8个二进制位   8字节等于64个二进制位

  • 一个 UTF-8 的中文字符大多数情况都是占 3 个字节

③操作(十进制转二进制   ,    二进制转十进制String.fromCharCode()    ,     一堆二进制转成字符串.toString())

创建 Buffer(十进制转二进制)

  • 直接创建 Buffer.alloc()

  • 不安全创建 Buffer.allocUnsafe()

  • 通过数组和字符串创建 Buffer.from(' ')         与括号内部对应的ASCII码(二进制)

  • 进制转换总结:

//将 Buffer 转化成字符串
const buf_3 = Buffer.from('iloveyou');// from 来自
// 1.输出指定位数十进制的二进制代码
console.log(buf_3[0])     //105
// 2.所有十进制转二进制
console.log(buf_3);  //<Buffer 69 6c 6f 76 65 79 6f 75>
// 3.所有二进制转十进制
console.log(buf_3.toString());    //iloveyou
// 4.二进制转十进制
console.log(String.fromCharCode(105));   //i
// 5.通过 ASCII 字符获取对应的编号
console.log('i'.charCodeAt());          //105
// 6.更改某一位的二进制值
buf_3[0] = 99;
console.log(buf_3.toString());              //cloveyou

Buffer 读取和写入(一堆二进制转十进制字符串)

可以直接通过 [] 的方式对数据进行处理,可以使用 toString 方法将 Buffer 输出为字符串

  • 进制变量[ ]对 buffer 的指定位数进行读取和设置

  • .toString() 将 Buffer 转化为字符串

关于溢出

溢出的高位数据会舍弃

关于中文

一个 UTF-8 的中文字符大多数情况都是占 3 个字节

关于单位换算

1Bit 对应的是 1 个二进制位

8 Bit = 1 字节(Byte)

1024Byte = 1KB

1024KB = 1MB

1024MB = 1GB

1024GB = 1TB

平时所说的网速 10M 20M 100M 这里指的是 Bit ,所以理论下载速度 除以 8 才是正常的理解的下载速度

五:文件写入(在系统硬盘里):系统 fs

fs 全称为 file system,是 NodeJS 中的内置模块,可以对计算机中的文件进行增删改查等操作。

当我们需要持久化保存数据时,要想到写入文件

写入场景:下载QQ音乐自动保存到硬盘中了;安装文件选择硬盘;日志(程序日记);数据库mongodb和mysql;网盘;我们生活中用手机用电脑时数据就在实时的写入

前提: let fs = require('fs')  引入fs模块

1.文件简单写入

①异步API   :  fs.writeFile(file , data , [,options] , callback); 代码执行顺序和写的顺序不统一,最后输出回调函数

  • options 选项

    • encoding 默认值: 'utf8'

    • mode默认值: 0o666

    • flag 默认值: 'w'    {flag:'a'}

  • 举例:无flag:  flag可省略

  • 有flag:

 加入flag:'a'后重复多次运行:追加字符串

②同步API   :  fs.writeFileSync(file, data , [,options] );   执行顺序和代码顺序一致

③关于用同步写还是用异步写:

如果为用户提供服务服务,用异步;

如果做文件相关处理,用同步(简单的写入,读取)

2.练习:将一个对象data存入到电脑D盘内(记住先用JSON转成字符串)

3.文件流式写入   fs.createWriteStream(path,[ options])

  •                          path
  •                          options

                                    ==flags== 默认值: 'w'

                                    encoding默认值: 'utf8'

                                    mode 默认值: 0o666

                         事件监听 open close eg: ws.on('open', function(){});

4.什么时候用简单写入,什么时候用流式写入

①对于简单的写入次数较少的情况,可以使用 writeFile ;

②如果是批量要写入的场景,使用 createWriteStream  ;

六:文件读取

对于小文件读取用 readFile

对于大文件读取用 createReadStream

1.简单读取

①异步:    fs.readFile(‘文件名’, function(err, data){}) 回调函数有两个参数,

                   第一个是错误,如果有错误输出错误,如果没有就是null;if里必须写return

                   第二个参数是data,输出是结果

②同步:    fs.readFileSync(file)

③练习:JSON文件读取成JS

2.流式读取   fs.createReadStream(‘文件名’); 一点一点读取

七:复制文件

1.异步复制文件

2.流式复制文件

3.现成的方法  旧.pipe(新)

八:移动文件 + 重命名,有就重命名,没有就移动并且起名字

1.异步fs.rename('旧路径', '新路径', function(err){})

2.同步fs.renameSync('旧路径','新路径')

九:文件删除

1.异步:   fs.unlink('./test.log', function(err){});

2.同步: fs.unlinkSync('./move.txt');

十:文件夹操作

1.   mkdir('文件路径',回调函数err)创建文件夹

  • path

  • options

    • recursive 是否递归调用

    • mode 权限 默认为 0o777

  • callback

2.   readdir('文件路径',(err和files)) 读取文件夹 内的列表信息,也能读硬盘里的文件

3.   rmdir 删除文件夹(只能删除空的文件夹,不空不让删)

如果想删除非空文件夹,应该用递归做,可以在rmdir里面再加:为true就是递归删除

十一:路径问题:绝对路径__dirname,相对路径 

十二:查看文件状态stat是否是文件夹或者文件:

传参stats 

 

十三:  node.js文件内部写入:

1.换行  \r\n

2.读取Windows下的文件时用反斜线,两个反斜线是为了防止转义

十四:附录

unicode 字符集

十五:npm

①npm init

此命令作用就是帮助我们快速创建 package.json 配置文件

如果使用 npm init --yes 则文件夹名称不能为『中文』, 也不能使用『大写』

②package.json

此文件为 npm 包的配置文件

③node_modules

存放的 npm 下载的『工具包』

我们很少使用 HTML 直接引入 node_modules 当中的内容

④npm 使用步骤

  1. 定位到一个文件夹下(新建 或者 已经存在的)

  2. 启动命令行 将工作目录定位到第一步的文件中的

  3. 运行 npm init (只需要运行一次为了快速创建 package.json 配置文件)

  4. 运行 npm i 包名 安装工具包(node_modules 是存放 npm 下载的 工具包)

安装需要联网才行

⑤注意运行命令的位置

package.json 所在的文件夹运行, 项目的根目录

⑥npm i request -S   生产依赖

会将安装的包的信息,记录在 package.json 中的 dependencies 属性

⑦npm i babel -D      开发依赖

会将安装的包的信息,记录在 package.json 中的 devDependencies 属性

⑧全局安装以下两个

npm install less -g                 可以把less文件转换为css文件
npm install nodemon -g         代码无需ctrl+s保存重启,页面直接更新

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值