当前位置:   article > 正文

认识Node和文件系统(读写,删除等)的操作

认识Node和文件系统(读写,删除等)的操作

目录

一、Node简介

1.1 什么是Node.js

1.2 为什么学习Node.js

1.3 Node.js简史

1.4 Node.js的特点【重点】

1.5 Node与JavaScript之间的区别【重点】

二、Node安装

2.1 下载与安装

2.2 第一个nodejs程序

2.3nodejs运行程序的方法 

三、命令行与cmd

3.1 cmd和命令介绍

3.2 打开cmd(打DOS小窗)的三种方法【重点】

3.3 常用DOS命令【重点】

3.4 使用技巧【重点】

四、环境变量

4.1 什么是环境变量【重点】

4.2 如何配置环境变量【重点】

五、文件系统/模块

5.1 进制

5.1.1 常见进制简述

5.2 文件的操作流程

5.2.1 打开文件

5.2.2 读写入内容

5.2.3关闭文件

5.3 文件操作【重点】

5.4.1 写入文件

5.4.2 读取文件

5.4.3 修改文件名称

5.4.4 删除文件

5.4.5 文件信息

5.5 文件夹操作【重点】

5.5.1 创建目录

5.5.2 读取目录

5.5.3 删除目录

六、其他(__filename 和 __dirname)

6.1 全局变量


一、Node简介

Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境, 也就是说nodejs提供一个可以让javascript代码运行在服务端的环境。

Node.js主要用于编写像Web服务器一样的网络应用

官网地址:Node.js

中文官网:Node.js 中文网

1.1 什么是Node.js

nodejs提供一个可以让javascript代码运行在服务端的环境。

1.2 为什么学习Node.js

● 学习Node.js是为了解前后端交互流程

● 同时为后面学习前端框架做准备

● 前端有很多业务不能解决,需要使用Node.js处理

1.3 Node.js简史

Node.js 诞生只有十二年(2009~2021)目前已经相当成熟。相比之下,JavaScript 已存在 24 年,而 Web 则是 31 年。十二年在技术领域并不是很长的时间,但是 Node.js 似乎已存在很久。

1.4 Node.js的特点【重点】

  • 单线程 相当于一家饭店只有一个服务员

  • 异步、非阻塞I(input)/O(output): I/O包括有文件I/O操作、网络I/O操作

  • 事件驱动

1.5 Node与JavaScript之间的区别【重点】

JavaScript:ecmascript/BOM/DOM

Node: Ecmascript/Node提供的方法(另外nodejs也封装了自己的API(Application Programming Interface,应用程序接口)),没有DOM和BOM

二、Node安装


2.1 下载与安装

下载地址1:Download | Node.js (V14只能是win10及以上。)

下载地址2:Node.js Mirror v12

node-v12.16.0-x64.msi (64位)

node-v12.16.0-x86.msi (32位)

2.2 第一个nodejs程序

console.log('Hello web');

2.3nodejs运行程序的方法 

运行nodejs程序的两种方式:【重点】

第一种:在dos小黑窗中使用node应用程序来执行nodejs程序文件:

第二种:在vscode中通过code runner插件来运行nodejs程序文件,安装完code runner插件后在对应的程序文件中右单击并选择"Run code"来执行程序。  

三、命令行与cmd


3.1 cmd和命令介绍

使用cmd命令可以打开DOS小黑窗。

什么是DOS小黑窗?

DOS小黑窗是windows操作系统提供的一个字符界面,在这个字符界面中可以使用命令来操作windows操作系统。

3.2 打开cmd(打DOS小窗)的三种方法【重点】

第一种:在“运行”框中输入cmd;

第二种:按住"shift"键后再右单击鼠标并选择“在此处打开命令窗口”;

第三种:在“资源管理器”的地址栏中输入cmd;

3.3 常用DOS命令【重点】

切换目录: cd

查看目录下的信息: dir

. 代表当前目录

.. 代表上一级目录

清屏:cls

切换盘符: 盘符后面加冒号

3.4 使用技巧【重点】

tab:自动补齐

→←↑↓

常用windows快捷键:

win+d:快速回到桌面

win+r:打开“运行”框

win+e:打开“资源管理器”

win+l:锁屏

四、环境变量


4.1 什么是环境变量【重点】

环境变量就是用来设置操作系统运行的参数,配置完某个应用程序的环境变量后就可以在当前操作系统的任意中执行该应用程序。

4.2 如何配置环境变量【重点】

windows10

windows7

 

五、文件系统/模块


5.1 进制

5.1.1 常见进制简述

二进制、八进制、十进制、十六进制...

 

 

5.2 文件的操作流程

在Nodejs中可以通过内置的fs模块来操作系统文件。

文件系统操作都具有同步和异步两种方式。

5.2.1 打开文件

同步:fs.open()、异步:fs.openSync()

fs.openSync(path[, flags])

参数说明:

path:必写参数,是要打开的目标文件名的字符串(可以包含文件所在的具体路径)

flags:可选参数,设置打开文件的模式(访问模式),常用的模式为只读、写入、追加。

打开模式表:

模式说明
a文件用于追加。 如果文件不存在,则创建该文件
ax类似于a,但如果路径存在,则失败
a+打开文件用于读取和追加。 如果文件不存在,则创建该文件
ax+类似于 'a+',但如果路径存在,则失败
as打开文件用于追加(在同步模式中)。 如果文件不存在,则创建该文件
as+打开文件用于读取和追加(在同步模式中)。 如果文件不存在,则创建该文件
r+打开文件用于读取和写入。 如果文件不存在,则会发生异常
rs+打开文件用于读取和写入(在同步模式中)。 指示操作系统绕过本地的文件系统缓存
w打开文件用于写入。 如果文件不存在则创建文件,如果文件存在则截断文件
wx类似于 'w',但如果路径存在,则失败

5.2.2 读写入内容

写入内容:

fs.write()、fs.writeSync()

fs.writeSync( fd,内容 ) 

读内容:

fs.read()、fs.readSync()

5.2.3关闭文件

关闭文件 fs.close()、fs.closeSync()

 fs.closeSync(fd)  

  1. //引入fs模块:fs模块是对文件或目录的操作
  2. const fs = require('fs');
  3. // console.log(fs);
  4. //第一步:打开文件 fs.open()、fs.openSync()
  5. fs.openSync('./test.txt', 'a+');
  6. fs.open(`${__dirname}/test.txt`,'a+',function(err){
  7. console.log(111);
  8. })
  9. // let rt = fs.openSync('E:/web_beijing/day04/代码/test.txt', 'a+');
  10. let rt = fs.openSync('E:/web_beijing/day04/代码/test.txt', 'w+');
  11. // console.log(rt, 1111);
  12. //第二步:对文件进行读、写:
  13. // 写操作:fs.write()、fs.writeSync()
  14. // 读操作:fs.read()、fs.readSync()
  15. fs.writeSync(rt, 'Ha Ha');
  16. //第三步:关闭文件 fs.close()、fs.closeSync()
  17. fs.closeSync(rt);

 

5.3 文件操作【重点】

5.4.1 写入文件

fs.writeFile()、fs.writeFileSync();

fs.writeFileSync( path,data[,options] )

 fs.writeFile(file, data[, options], callback)

参数说明:

path:必选参数,文件路径

data:文件中写入的数据

options:可选参数,设置以何种方式写入内容,主要有替换和追加 { flag:'a' }a代表追加append,w代表替换,默认为替换

  1. //引入fs模块:
  2. const fs = require('fs');
  3. console.log(__dirname);
  4. console.log(__filename);
  5. //写文件:fs.writeFile()、fs.writeFileSync();
  6. fs.writeFileSync('E:/web_beijing/day04/代码/123.txt', '测试下', { flag: 'a+' });
  7. fs.writeFileSync(`${__dirname}/123.txt`, 'Hello web', { flag: 'a+' });
  8. fs.writeFile(`${__dirname}/123.txt`, 'Hello',{flag:'a+'},function(err){
  9. console.log("HTML");
  10. });

5.4.2 读取文件

fs.readFileSync( path[,options] )

fs.readFile(path[, options], callback)

参数说明:

path:必选参数,文件路径

options:可选参数 { encoding:'utf8' } | 'utf8',以utf8编码格式读取内容,中括号代表可选参数

  1. //引入fs模块:
  2. const fs = require('fs');
  3. console.log(__dirname);
  4. console.log(__filename);
  5. //读取文件:fs.readFile()、fs.readFileSync()
  6. let str = fs.readFileSync(`${__dirname}/123.txt`);
  7. console.log(str, str.toString());
  8. //异步方式读取文件内容:
  9. fs.readFile(`${__dirname}/123.txt`, function(x, y) {
  10. console.log(x, y, y.toString());
  11. });

5.4.3 修改文件名称

给目录或文件重命名:fs.rename()、fs.renameSync()

fs.renameSync( oldpath,newpath )

 fs.rename(oldPath, newPath, callback)

参数说明:

oldpath:必选参数,原文件|文件夹路径

newpath:必选参数,新文件|文件夹路径

  1. const fs = require('fs');
  2. //给目录或文件重命名:fs.rename()、fs.renameSync()
  3. fs.renameSync(`${__dirname}/test`, `${__dirname}/mytest`);
  4. fs.rename(`${__dirname}/1.html`,`${__dirname}/test.html`,function(err){
  5. })

5.4.4 删除文件

fs.unlink(path, callback)

fs.unlinkSync( filepath )

参数说明:

filepath:必选参数,要删除的文件路径

  1. const fs = require('fs');
  2. //删除文件:fs.unlink()、fs.unlinkSync();
  3. fs.unlinkSync(`${__dirname}/mydemo/321.txt`);
  4. if(fs.existsSync(`${__dirname}/demo/1.html`)){
  5. fs.unlinkSync(`${__dirname}/demo/1.html`);
  6. }
  7. fs.unlink(`${__dirname}/test.html`, (err) => {
  8. });

5.4.5 文件信息

fs.statSync( path )

fs.stat(path[, options], callback) 

参数说明:

path:必选参数,文件或文件夹的路径地址

其他:

判断文件:stat.isFile()

判断目录:stat.isDirectory()

  1. const fs = require('fs');
  2. //获取文件或目录的状态:fs.stat()、fs.statSync()
  3. let stat = fs.statSync(`${__dirname}/${fname}`);
  4. fs.stat(`${__dirname}/${fname}`, (err, stats) => {
  5. console.log(stats.isDirectory());
  6. console.log(stats);
  7. });
  8. console.log(stat, 111);
  9. if (stat.isFile()) { //为文件
  10. console.log(`文件:${fname}`);
  11. } else { //为目录
  12. console.log(`目录:${fname}`);
  13. }
  14. if (stat.isDirectory()) {
  15. console.log(`目录:${fname}`);
  16. }

5.5 文件夹操作【重点】

5.5.1 创建目录

fs.mkdirSync( path[,options] )

fs.mkdir(path[, options], callback) 

参数说明:

path:必选参数,要创建的文件夹完整路径名称

options:可选参数,是否递归创建文件夹,{ recursive:true } true代表递归创建

 判断文件或目录是否存在:

fs.exists()已经弃用、fs.existsSync()

  1. const fs = require('fs');
  2. //创建目录:fs.mkdir()、fs.mkdirSync()
  3. // fs.mkdirSync(`${__dirname}/mydemo`);
  4. if (!fs.existsSync(`${__dirname}/test`)) { //test不存在时则创建
  5. fs.mkdirSync(`${__dirname}/test`);
  6. }
  7. if(!fs.existsSync(`${__dirname}/aa`)){
  8. fs.mkdir(`${__dirname}/aa`,arr=>{
  9. console.log(11);
  10. })
  11. }

5.5.2 读取目录

fs.rmdirSync( path[,options] )

 fs.rmdir(path[, options], callback

参数说明:

path:必选参数,要删除的文件夹完整路径

options:可选参数,是否递归删除文件夹,{ recursive:true } true代表递归创建,只有V14版本支持

  1. const fs = require('fs');
  2. //删除目录:fs.rmdir()、fs.rmdirSync()
  3. //注意:只能删除空目录
  4. fs.rmdirSync(`${__dirname}/test`);
  5. fs.rmdirSync(`${__dirname}/mydemo`);
  6. fs.rmdir(`${__dirname}/aa`,arr => {
  7. console.log(222);
  8. });

5.5.3 删除目录

语法:

fs.readdirSync(path)

 fs.readdir(path[, options], callback)

参数说明:

path:必选参数,要读取的文件夹的完整路径

如果读取成功返回一个数组。

  1. //读取目录:fs.readdir()、fs.readdirSync()
  2. let arr = fs.readdirSync(__dirname);

六、其他(__filename__dirname

6.1 全局变量

在浏览器 JavaScript 中,通常 window是顶层对象,而 Node.js 中的顶层对象是 global

Node平台内置了例如:__filename__dirname等全局变量 setInterval() setTimeout()等方法

__dirname:动态获取当前文件所在的绝对路径

__filename:动态获取当前文件所在的绝对路径、包含当前文件名

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/174416
推荐阅读
相关标签
  

闽ICP备14008679号