【node.js从入门到精通】使用node.js写入读取文件内容,基础方法使用

简介: 【node.js从入门到精通】使用node.js写入读取文件内容,基础方法使用

前言


Node.js是一个基于Chrome V8引擎的JavaScript运行环境。



区分版本号


LTS为长期稳定版,推荐安装LTS版本的Node.js. Current为新特性尝鲜版,对热衷于尝试新特性的同学来说,推荐安装Current版本的Node.js


读取文件内容


使用readFile读取文件内容


读取失败是一个error对象


成功的话就是undefined


// 1.导入fs模块,操作文件
const fs = require('fs');
// 2.调用readFile() 方法 来读取文件
// 第一个参数是被读取文件的路径
// 第二个参数是编码格式
// 第三个参数是回调函数,拿到读取成功(dataStr)或者是失败的结果 (err)
fs.readFile('./file/01.text', 'utf8', function (err, dataStr) {
    console.log(err);// 打印失败的结果
    console.log("---------------------");
    console.log(dataStr);// 打印成功的结果
})


判断文件是否读取成功

const fs = require('fs');
fs.readFile('./file/01.txt', 'utf8', function (err, dataStr) {
    if (err) {
        return console.log('读取失败!' + err.message);
    }
    console.log('读取成功!' + dataStr);
})

成功



失败



使用writeFile写入文件内容

const fs = require('fs');
// 三个参数
// 参数1表示文件存放路径
// 参数2表示要写入文件的内容
// 参数3回调函数
fs.writeFile('./file/02.text', 'Aic大山鱼', function (err) {
    // 写入成功后err的值就是null,且在该文件夹下生成一个02文件 
    if (err) {
        return console.log('文件写入失败!' + err.message);
    }
    console.log('文件写入成功!');
})


整理数据


思维梳理


要求:把一个文件的内容整理起来,放到另一个文件名字和分数用冒号分隔开


1.导入需要的fs文件系统模块


2.使用fs.readFile0方法,读取素材目录下的report-card.txt文件


3.判断文件是否读取失败


4.文件读取成功后,处理成绩数据


5.将处理完成的成绩数据,调用fs.writeFile0 方法,写入到新文件report-card(1).txt中


// 导入fs模块
const fs = require('fs');
// 调用resdFile()方法 读取文件
fs.readFile('./file/report-card.txt', 'utf8', function (err, dataStr) {
    toString(dataStr);
    // 判断是否读取成功
    if (err) {
        return console.log('读取失败!' + err.message);
    }
    // 把获取到的成绩用逗号分隔开保存
    const arrOld = dataStr.split(',');
    // 循环分割后的每一个数组,进行字符串的替换操作
    const arrNew = [];
    // item代表要遍历那个数组里的每一项
    arrOld.forEach(item => {
        // 把=替换成:
        arrNew.push(item.replace('=', ':'))
    });
    // 把新数组的每一项进行合并得到新的字符串
    const newStr = arrNew.join('\n');
    // 使用writeFile()方法,把处理完毕的数据写入到新文件中
    fs.writeFile('./file/report-card(1).txt', newStr, function (err) {
        if (err) {
            return console.log('写入失败!' + err.message);
        }
        console.log('写入成功!');
    })
})


路径动态拼接处理问题


在使用fs模块操作文件时,如果提供的操作路径是以/或./开头的相对路径时,很容易出现路径动态拼接错误的问题。


原因:代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径。

// __dirname 表示当前文件所处的目录
const fs = require('fs');
// 使用方法
fs.readFile(__dirname + '/file/01.txt', 'utf8', function (err, dataStr) {
    if (err) {
        return console.log('读取失败!' + err.messages);
    }
    console.log('读取成功!' + dataStr);
})

path模块是Node.js官方提供的、用来处理路径的模块。它提供了一系列的方法和属性, 用来满足用户对路径的处理需求。


●path.join()方法,用来将多个路径片段拼接成一个完整的路径字符串


●path.basename()方法,用来从路径字符串中,将文件名解析出来


const path = require('path');
// ../会抵消一层路径
const pathStr = path.join('/a', '/v', '../', '/d', 'c');
console.log(pathStr);
const path = require('path');
const fs = require('fs');
fs.readFile(path.join(__dirname, +'/file/01.txt'), 'utf8', function (err, dataStr
) {
    if (err) {
        return console.log(err.message);
    }
    console.log(dataStr);
})

path.basename使用

const path = require('path');
const fpath = '/a/d/c/index.html'
const fullName = path.basename(fpath);
console.log(fullName);
// 移除后缀名
const nameWithoutExt = path.basename(fpath, '.html');
console.log(nameWithoutExt);

获取路径中扩展名文件

path.extname()方法

const path = require('paht');
const fpath = '/a/s/d/f/index.html'// 路径字符串
const fext = path.extname('fpath');
console.log(fext);// 输出.html
目录
相关文章
|
25天前
|
Web App开发 JavaScript 前端开发
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念
Node.js 是一种基于 Chrome V8 引擎的后端开发技术,以其高效、灵活著称。本文将介绍 Node.js 的基础概念,包括事件驱动、单线程模型和模块系统;探讨其安装配置、核心模块使用、实战应用如搭建 Web 服务器、文件操作及实时通信;分析项目结构与开发流程,讨论其优势与挑战,并通过案例展示 Node.js 在实际项目中的应用,旨在帮助开发者更好地掌握这一强大工具。
44 1
|
13天前
|
存储 JavaScript NoSQL
Node.js新作《循序渐进Node.js企业级开发实践》简介
《循序渐进Node.js企业级开发实践》由清华大学出版社出版,基于Node.js 22.3.0编写,包含26个实战案例和43个上机练习,旨在帮助读者从基础到进阶全面掌握Node.js技术,适用于初学者、进阶开发者及全栈工程师。
40 9
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
111 1
|
1月前
|
移动开发 前端开发 JavaScript
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
于辰在大学期间带领团队参考网易游戏官网的部分游戏页面,开发了一系列前端实训作品。项目包括首页、2021校园招聘页面和明日之后游戏页面,涉及多种特效实现,如动态图片切换和人物聚合效果。作品源码已上传至CSDN,视频效果可在CSDN预览。
40 0
前端实训,刚入门,我用原生技术(H5、C3、JS、JQ)手写【网易游戏】页面特效
|
28天前
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
6月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
354 3
|
3月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
4月前
|
JavaScript 前端开发 Shell
mac和windows上安装nvm管理node版本
NVM(Node Version Manager)是前端开发者常用的命令行工具,用于管理计算机上的不同Node.js版本。通过NVM,开发者可以轻松地在多个项目间切换所需的Node.js版本。在Mac上,可以通过cURL或Wget下载安装脚本,或使用包管理工具brew安装。安装后需配置环境变量以识别NVM命令。Windows用户则可通过专用的nvm-windows安装程序完成安装。常用命令包括安装、卸载特定版本、列出已安装版本等。
343 0
|
4月前
|
JavaScript Windows
记一下 Windows11 安装与配置 node.js 的标准步骤
这篇文章记录了在Windows 11系统上安装和配置Node.js的步骤,包括安装Node.js、验证安装、配置npm、设置npm镜像加速、全局安装cnpm并配置镜像、解决TLS连接不安全警告的详细过程。
488 0