Node.js基础---fs文件系统 读取和写入

news2024/11/26 0:52:37

什么是nodejs?

    脚本语言需要一个解析器才能运行,JavaScript是脚本语言,在不同的位置有不一样的解析器,如写入html的js语言,浏览器是它的解析器角色。而对于需要独立运行的JS,nodejs就是一个解析器。

   每一种解析器都是一个运行环境,不但允许js定义各种数据结构,进行各种计算,还允许js使用允许环境提供的内置对象和方法做一些事情。如运行在浏览器中的js的用途是操作DOM,浏览器就提供了document之类的内置对象。而运行在nodejs中的js的用途是操作磁盘文件或搭建http服务器,nodejs就相应提供了fs,http等内置对象。

如何使用node来运行js文件

在你需要运行的文件内 鼠标右键

打开的是 PowerShell 的终端 这个会比用 cmd 打开的终端版本更高一点

PowerShell内的使用方法 和在 终端内是一样的

想要以node去运行js文件  就输入命令

node '文件路径'

文件路径可以使用 TAB 键快速补全

fs文件系统

要想使用这些封装好的方法,首先电脑内需要下载node,这个在官网下载一个稳定的版本就可以

然后就是在js文件内,去引入 fs 

// 1 导入 fs 模块
const fs = require('fs')

readFile 读取磁盘文件

// 调用 fs.readFile()方法 读取文件
// 第一个参数 路径
// 第二个参数 读取采用的编码 默认 utf-8
// 第三个参数 回调函数 err dataStr
   fs.readFile(a, b, c)
// 例:
fs.readFile('./files/1.txt', 'utf-8', function(err, dataStr) {
    console.log(err);
    console.log('----------');
    console.log(dataStr);
})

我们可以通过回调函数来判断是否读取成功

如果成功

        err 会打印  null 

        dataStr 会打印出指定文件的内容

如果失败 

        err 会打印  错误对象

        dataStr 会打印 undefined

我们可以利用err 去判断是否成功

fs.readFile('./files/1.txt', 'utf-8', function(err, dataStr) {
    // 如果存在err 就代表读取失败 如果为null不存在 就代表读取成功
    if (err) {
        return console.log('文件读取失败:', + err);    
    }
    console.log('文件读取成功,内容是:' + dataStr);
})

writeFile 写入磁盘文件

// 1 导入 fs 模块
const fs = require('fs')

// 2 调用 fs.writeFile()方法 读取文件
// 第一个参数 路径
// 第二个参数 写入内容
// 第三个参数 写入采用的编码 默认 utf-8
// 第四个参数 回调函数 err dataStr
fs.writeFile(a, b, c, d)
// 例:
fs.writeFile('./files/2.txt', 'Hello! My baby~~!!!!!!', function(err) {
    console.log(err);
})

我们可以通过回调函数来判断是否读取成功

如果成功

        err 会打印  null 

如果失败 

        err 会打印  错误对象

我们可以利用err 去判断

fs.writeFile('./files/2.txt', 'Hello! My baby~~!!!!!!', function(err) {
    if (err) {
        return console.log('文件写入无效:', + err);    
    }
    console.log('文件写入成功!');
})


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1393562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3项目eslint配置、配置prettier(格式化配置)

文章链接: 全部配置链接 第一步:eslint配置、配置prettier(代码格式化):点击链接 (1) .eslint.cjs—eslint配置文件 (2).eslintignore—校验忽略文件 (3).prettierrc.json添加规则 (4).prettierignore忽略文件 prettierrc规范说明: 第二步:styleLint配置 样式链接 第三…

迭代器模式介绍

目录 一、迭代器模式介绍 1.1 迭代器模式定义 1.2 迭代器模式原理 1.2.1 迭代器模式类图 1.2.2 模式角色说明 1.2.3 示例代码 二、迭代模式的应用 2.1 需求说明 2.2 需求实现 2.2.1 抽象迭代类 2.2.2 抽象集合类 2.2.3 主题类 2.2.4 具体迭代类 2.2.5 具体集合类 …

云边协同的 RTC 如何助力即构全球实时互动业务实践

作者:即构科技 由 51 CTO 主办的“WOT 全球技术创新大会 2023深圳站”于 11 月 24 日 - 25 日召开,即构科技后台技术总监肖潇以“边缘容器在全球音视频场景的探索与实践”为主题进行分享。 边缘计算作为中心云计算的补充,通过边缘容器架构和…

scalpel一款命令行漏洞扫描工具,支持深度参数注入,拥有一个强大的数据解析和变异算法

免责声明 由于传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢&#xf…

javaweb学习day01(HTML)

一、B/S 软件开发架构简述 1 Java Web 技术体系图 2 B/S 软件开发架构简述 B/S架构 前端 后端 数据库 二、HTML 1 官方文档 地址: https://www.w3school.com.cn/html/index.asp 离线文档: W3School 离线手册(2017.03.11 版).chm 2 网页 3 HTML 介绍 3.1 HTML 是什么…

vue基于Spring Boot的中医在线学习课程购买服务管理系统

SpinrgBoot的主要优点有: 1、为所有spring开发提供了一个更快、更广泛的入门体验; 2、零配置; 3、集成了大量常用的第三方库的配置; 4、提供准备好的特性。当今,nodejs领域的开发者机会都在使用SpinrgBoot,在开发领域逐…

SQL Server Management Studio基础

文章目录 一、SQL Server Management Studio介绍二、创建数据库 一、SQL Server Management Studio介绍 SQL Server Management Studio(SSMS)是用于管理和操作Microsoft SQL Server数据库的集成环境。用力啊方便管理员和开发人员进行数据库管理、查询、…

云轴科技ZStack 助力广西某地级市建设市级警务云视频系统

某市属于广西壮族自治区辖地级市,省域副中心城市,选择云轴科技ZStack 超融合解决方案支撑警务云视频监控联网管理系统(警务云视频系统),实现了该市对各辖区视频资源统一管理;同时也满足了该市警务云视频系统…

【5G Modem】5G modem架构介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

微信小程序的基础开发

微信小程序目录结构 一个小程序主体部分由三个文件组件,必须放在项目的根目录, 一个小程序page页面由四个文件组件,分别为: ,js文件:用来写JavaScript wxml文件:写页面结构,可以理解为html json: 里面是页…

VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记

这个是B站Up主:程序员程子青的视频 C封装Mysql增删改查操作_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1m24y1a79o/?p6&spm_id_frompageDriver&vd_sourcea934d7fc6f47698a29dac90a922ba5a3安装mysql:mysql 下载和安装和修改MYSQL8.0 数据库存储…

SpringBoot 更新业务场景下,如何区分null是清空属性值 还是null为vo属性默认值?

先看歧义现象 值为null 未传递此属性 所以此时如何区分null 时传递进来的的null,还是属性的默认值null? 引入方案 引入过滤器,中间截获requestBodyData并保存到HttpServletRequest,业务层从HttpServletRequest 获取到requestBodyData辅…

【JavaScript】面向对象

重学JavaScript05----- 面向对象 文章目录 重学JavaScript05----- 面向对象前言JavaScript的面向对象面向对象的三大特征一、创建对象方式(封装)1、 直接创建方式弊端 思考属性描述符 2、工厂模式弊端 3、构造函数new操作符调用的作用构造函数创建对象弊…

一文读懂——如何把网站改成HTTPS访问

HTTPS(全称为Hyper Text Transfer Protocol Secure)是一种在计算机网络上进行安全通信的协议,它通过SSL/TLS证书对传输数据进行加密,确保了用户与服务器之间信息交换的私密性和完整性。 获取SSL/TLS证书 选择证书类型&#xff1a…

【问题+解决】axios/vue/element/echarts引入报错

缘由 笔者在html页面引用vue来快速实现页面&#xff1b;<head></head>中通过<script>src""></script>方法引入&#xff0c;开始引入&#xff0c;应用都是正常&#xff0c;后来用了也没问题&#xff1b;奇怪的是&#xff0c;前几天发现htm…

npm换源

检查现在的源地址 npm config get registry 使用淘宝镜像 npm config set registry https://registry.npm.taobao.org 使用官方镜像 npm config set registry https://registry.npmjs.org/

Redis-redis发布订阅、主从复制、哨兵模式、缓存穿透与雪崩学习理解

1、Redis发布订阅 下图展示了频道 channel1 &#xff0c; 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系&#xff1a; 当有新消息通过 PUBLISH 命令发送给频道 channel1 时&#xff0c; 这个消息就会被发送给订阅它的三个客户端&#xff1a; 1&…

ruoyi-cloud—若依微服务打包部署

1. 前端端口修改 2. 后端端口修改 &#xff08;1&#xff09;修改ruoyi-gateway服务中的bootstrap.yml的port端口 &#xff08;2&#xff09;修改ruoyi-ui中的vue.confing.js的target中的端口 3. 后端部署 (1) 在本地电脑上代码界面上打包后端 在ruoyi项目的bin目录下执行pa…

【淘宝集运攻略】省钱又省心,印尼好物海淘指南

【淘宝集运攻略】省钱又省心&#xff0c;印尼好物海淘指南&#x1f4e6;✈️ 嗨&#xff0c;亲爱的CSON们&#xff01;今天给大家分享一下淘宝集运发往印尼的超实用攻略&#xff0c;不仅省钱还省心哦&#xff01;&#x1f6cd;️&#x1f496; 1. 购物集货 &#x1f6d2; 网上…

MySQL之视图索引

学生表&#xff1a;Student (Sno, Sname, Ssex , Sage, Sdept) 学号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄&#xff0c;所在系 Sno为主键 课程表&#xff1a;Course (Cno, Cname,) 课程号&#xff0c;课程名 Cno为主键 学生选课表&#xff1a;SC (Sno, Cno, Score)…