node笔记01——Nodejs学习之fs模块、最齐全的node.js学习,包含练习案例整理

2023-10-30

Nodejs学习之fs模块

初始node.js

浏览的中的JavaScript主要是有JavaScript核心语法和webAPI组成。浏览器中因为使用了JavaScript解析引擎,所以JavaScript代码才可以再浏览器中被执行。

不同浏览器中使用的js解析引擎

chromw解析引擎V8、Firefox解析引擎 OdinMonkey、safiri解析引擎 JSCore。其中V8解析引擎性能最佳。

浏览器中常见的API

API是运行环境(浏览器)提供的特·殊接口

如:DOM API / BOM API / ajaxAPI……

浏览器中JavaScript运行环境

运行环境是指代码正常运行所必须的环境。

一个浏览器当中,包含了JavaScript解析引擎,包含了常用的API,该浏览器便是一个运行环境。

node.js运行环境

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

通过学习node.js便可以使用JavaScript实现后端开发

node.js中的JavaScript运行环境

node.js运行环境和浏览器一样,也由JavaScript解析引擎和内置API组成

**node.js的解析引擎:**Chrome V8

内置API: fs/path/http/js内置对象……

总结:浏览器是JavaScript的前端运行环境、node.js是JavaScript的后端运行环境,node.js中无法调用前端运行环境中的BOM/DOM等浏览器的内置API

node.js可以做什么

node.js作为JavaScript的运行环境,只提供了基本的功能和API,但通过不同的框架丰富了node.js的使用场景

1、基于Express构建web应用 2、基于electron构建跨平台桌面应用 3、基于restify构建API接口项目……等

node.js学习路线

1、Node.js内置API模块(fs/path/http等)2、第三方API模块(express/mySQL等)

node.js环境的安装并查看当前版本号

csdn笔记:

https://blog.csdn.net/No1banana/article/details/124590181?spm=1001.2014.3001.5501

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z0xwwcIu-1654061140976)(/Users/trillion-star/Library/Application Support/typora-user-images/截屏2022-05-31 12.59.56.png)]

node官网有两个node的下载版本,有LTS稳定版current最新版这里推荐使用LTS版本。

如图当前node.js版本为 v18.1.0

如何在终端中执行JavaScript代码

一、打开终端(windows系统中是cmd或者PowerShell中执行)

二、输入node+空格+要执行文件的路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZVpKgG44-1654061140977)(/Users/trillion-star/Library/Application Support/typora-user-images/截屏2022-05-31 14.08.22.png)]

通过执行成功:输出了Hello,world.node.js

fs文件序偶通模块

fs是node.js自带的由官方提供的用来操作文件的模块,用来满足对文件的操作需求

使用: const fs = require('fs')来倒数fs模块

一、fs.readFile()方法:读取指定文件中的内容

二、fs.writeFile()方法:向指定的文件中写入内容

fs.readFile()方法的使用

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

参数1、必选参数path,字符串,表示文件的路径。

参数2、[可选参数 ],表示指定读取文件的编码格式。

参数3、必选参数callback,文件读取温完成后通过回到函数拿到读取的结果。

示例:

// 导入fs模块并用变量fs接收
const fs = require('fs') 
// 调用fs模块中的readFile方法读取文件
// 参数1:读取文件的存放路径
// 参数2:读取文件采用的编码格式,默认utf-8
// 参数3:回到函数,获取读取成功或失败的结果
fs.readFile('./files/一个文本文档.txt','utf-8',function(err,result){
    console.log(err)// 输出失败结果
    console.log(result)// 输出成功结果
})  

在终端中通过node执行上面的js代码,会输出读取结果。

  • 读取成功:err的值为null,result的值为读取的文件内容‘hello,world’。

  • 如果读取失败:err的值为错误对象,result的值为undefined

如何判断文件是否读取成功?

通过判断err的值便可以判断是否成功读取到文档,如果err的值为null则读取成功,否则读取失败

fs.readFile('./files/一个文本文档.txt','utf-8',function(err,result){
    if(err){
        return console.log('文件读取失败'+err.message)
    }
    console.log('文件读取成功,内容是:'+result)
})   

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rEpCbJxX-1654061140977)(/Users/trillion-star/Library/Application Support/typora-user-images/截屏2022-05-31 14.47.43.png)]

fs.writeFile()方法的使用

使用fs.writeFile方法可以想指定文件中写入内容,语法格式如下:

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

参数1、必选参数file,需要指定一个文件路径的字符串。

参数2、必选参数data,表示要写入的内容

参数3、[ 可选参数] ,表示写入文件内容的格式,默认utf-8。

参数4、必选参数callback,表示文件写入完成后的回调函数,无论成功或者失败都会调用。

示例:

// 导入fs模块使用变量fs接收
const fs = require('fs') 
// 参数1:文件存放路径,参数2:要写入的内容,参数3:回调函数
fs.writeFile('./files/准备写入的文档.txt','你好,Node',function(err){
    // 如果文件写入成功,err值为null
    if(err){
       return console.log('文件写入失败'+ err.message)
       // 文件写入失败得到一个错误对象,输出错误对象的message
    }
    console.log('文件写入成功')
})

练习 成绩文档的整理

实现步骤:

1、导入fs文件系统模块

2、读取成绩.txt文件

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

4、读取成功后处理成绩数据

5、将处理完成的成绩数据调用writeFile方法写入到新文件

const fs = require('fs')

fs.readFile('./files/成绩.txt','utf-8',function(err,result){
    if(err){
        return console.log('读取失败',err.message)
    }
    // 成绩读取成功将成绩数据按照空格进行分割
    const arrOld = result.split(' ')
    // 循环分割后得到数组,循环数组将每一项数据的字符串进行替换
    const arrNew = []
    arrOld.forEach(item=>{
        arrNew.push(item.replace ('=', ' : '))
    })
    // 将新数组中的每一项进行合并,回车换行,得到新的字符串
    const newStr = arrNew.join('\r\n')
    // 写入到新的文档
    fs.writeFile('./files/成绩ok.txt',newStr,function(err){
        if(err){
            return console.log('写入失败',+err.message)
        }
        console.log('写入成功:')
    })
})

效果截图

在这里插入图片描述

fs模块路径动态拼接的问题

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

  • 解决方法一、将相对路径更改为绝对路径。(移植性差)

绝对路径从根目录出发:/Users/trillion-star/Desktop/node学习/files/成绩.txt

  • 解决方法二、_ _dirname 代表当前文件所处的目录。(推荐)

    fs.readFile(__dirname +'/files/成绩.txt','utf-8',function(err,dataStr){
       if(err){
         return console.log('读取文件失败'+err.message)
       }
       	 console.log('读取文件成功'+dataStr)
    })
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

node笔记01——Nodejs学习之fs模块、最齐全的node.js学习,包含练习案例整理 的相关文章

  • 将 Repeater Container.ItemIndex 传递给 Javascript 函数

    在 C Asp Net 中 我需要将中继器出现索引传递到 Javascript 函数中OnClientClick从 ASP 按钮按下 这是我的代码
  • 所有事件的 HTML5 EventSource 监听器?

    我使用 EventSource 在 JavaScript 客户端应用程序中推送通知 我可以像这样附加事件监听器 source addEventListener my custom event type function e console
  • AngularJS:选择非 2 路绑定到模型

    我正在使用选择来显示客户名称 用户应该能够选择现有客户端 然后更新范围属性 控制器 初始化 首选 if scope clients length gt 0 scope existingClient scope clients 0 View
  • 将 Node.js(用于实时通知)添加到现有 PHP 应用程序

    我有一个现有的 PHP 应用程序 我需要向其中添加实时通知 为了实现这一点 我安装了node js 打算添加socket io以实现所有实时功能 然而 尽管在过去的三个小时里研究并试图弄清楚如何将两者结合起来 但我发现自己并没有更接近于获得
  • 尝试注册 RCTBridgeModule 类 RCTFileReaderModule

    尝试为名称 FileReaderModule 注册 RCTBridgeModule 类 RCTFileReaderModule 但该名称已由类 FileReaderModule 注册 尝试使用命令react native run ios在i
  • npm install 的 --save 选项是什么?

    我看到一些教程 其中命令是 npm install save 什么是 save选项是什么意思 更新 npm 5 As of npm 5 0 0 http blog npmjs org post 161081169345 v500 安装的模块
  • 从 html5

    我正在寻找一种方法来根据用户代理字符串将控件属性添加到视频标签 我不希望在 iPad 和 Android 之外的任何浏览器或设备上出现控件属性 所以我认为用户代理是最好的识别方法 因为 ipad 和 android 一词出现在各自的 UA
  • IE8 中空 div 层的 z-index 问题

    我在 IE8 中遇到 z index 问题 其他尚未测试 以下 JS 创建一些 html css document write img src border 0 document write div style background col
  • 在 JQuery ui 自动完成中显示图像

    我有一个带有 JQuery ui 自动完成功能的脚本 可以完美运行 有一个显示用户名字和姓氏的搜索过程 但在我的数据库中 还有用户的图片 我想将其显示在带有名字和姓氏的建议中 数据库中pic包含图片url 剧本 function searc
  • 动态更改 vuejs 2 中的选择输入选项

    如何动态更改选择下拉 v model 中的选项 我有 2 个选择输入 其中一个应该根据其他输入进行更改 例如 如果我选择 水果 则选择显示水果 如果我选择 蔬菜 则选择显示蔬菜 我不使用Vuejs 但查看文档后 var TypesArr F
  • 在电子生成器反应电子应用程序后,在 Windows 中出现空白屏幕

    在电子生成器反应电子应用程序后 Windows 中出现空白屏幕 这是package json 在电子生成器反应电子应用程序后 Windows 中出现空白屏幕 name SmallBusinessManagement version 0 1
  • 如何使用 jest 通过 Promise.all 设置多次提取测试

    我在测试中使用 jest 我正在使用 React 和 Redux 并且执行以下操作 function getData id notify return dispatch gt dispatch anotherFunction Promise
  • iPhone 点击时使 div 变暗

    当您的 div 附加了点击处理程序时 当点击该 div 时 iPhone 会使该 div 变暗 作为点击指示器 示例 在移动 Safari 上查看http jsbin com awejo3 4 http jsbin com awejo3 4
  • 元素不适应 Firefox 上的

    使用 ES6 ish D3js 模块运行 Angular 6 应用程序会导致 Firefox 出现问题 Chromium Chrome Safari 和 IE Edge 工作正常 伪代码看起来类似于 生产代码可以在下面找到
  • Windows 10 中的 npm 安装错误( npm install -g angular-cli )

    node v v4 5 0 npm v 5 0 1 有人在 Windows 10 中安装 angular cli 时遇到过这种问题吗 请尝试以下操作 step 0 运行这个命令 npm uninstall g angular cli npm
  • 模拟节点外部模块默认使用 jest 的链式方法

    在我们的节点 CLI 中 我们有一个简单的方法 use strict const ora require ora module exports function startSpinner textOnStart color spinnerT
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 如何调试 Node.js 应用程序?

    如何调试 Node js 服务器应用程序 现在我主要使用警报调试打印语句如下 sys puts sys inspect someVariable 一定有更好的调试方法 我知道谷歌浏览器 http en wikipedia org wiki
  • 错误:模块“html”不提供视图引擎(Express)

    我正在尝试设置一个简单的路由应用程序 但在渲染页面时不断遇到错误 Error Module html does not provide a view engine 奇怪的是我已经在 app js 文件中指定了视图引擎 但仍然收到错误 app
  • 我如何用 javascript/jquery 进行两指拖动?

    我正在尝试创建当有两个手指放在 div 上时拖动 div 的功能 我已将 div 绑定到 touchstart 和 touchmove 事件 我只是不确定如何编写这些函数 就像是if event originalEvent targetTo

随机推荐

  • Scala简介与安装

    目录 一 Scala简介 一 Scala概述 二 函数式编程 三 Scala特性 1 一切都是对象 2 一切都是函数 3 一切都是表达式 四 在线运行Scala 二 选择Scala版本 三 Windows上安装Scala 一 到Scala官
  • /var/run/yum.pid 已被锁定,PID 为 xxxx 的另一个程序正在运行的问题解决

    问题 解决 root localhost rm f var run yum pid
  • openGL阴影实现(软阴影)

    openGL系列文章目录 文章目录 openGL系列文章目录 前言 一 现实世界中的柔和阴影 二 生成柔和阴影 百分比邻近滤波 PCF 1 引入库 代码 运行效果 源码下载 前言 目前我们所展示的阴影生成方法都仅限于生成硬阴影 即带锐边的阴
  • R语言绘制箱线图并添加相关显著性

    箱线图 又称盒须图 通过绘制连续型变量的五数总括 即最小值 下四分位数 第25百分位数 中位数 第50百分位数 上四分位数 第75百分位数 以及最大值 描述了连续型变量 的分布 它主要用于反映原始数据分布的特征 还可以进行多组数据分布特征的
  • 网络爬虫CSS选择器详细讲解

    网络爬虫CSS选择器详细讲解 前言 使用步骤 1 解析的HTML代码 2 逐层选择节点 3 获取文本 string和get text 4 获取节点的属性值 5 选择单个和多个节点 6 通过class和id选择节点 class id 7 选择
  • PLY 模型文件简析

    PLY 模型文件简析 参考链接 wiki需要FFFQQQ TIPS 主要是一些英文的简析 但是一句话 网上讲的不清楚 特此说明property list uchar int vertex indices 应该是面的顶点数量使用 uchar
  • 苹果 / Apple iCloud 教育版 200GB 云盘账号自助注册教程

    因为教育机构的管理式 Apple ID 可以单点登录 SSO 登录 因此自助注册苹果 Apple iCloud 教育版 200GB 云盘账号就可以顺利进行了 自助注册苹果 Apple iCloud 教育版 200GB 云盘账号分为两步 自助
  • STM32速成笔记—IWDG

    文章目录 一 IWDG简介 二 STM32的IWDG 2 1 STM32的IWDG简介 2 2 喂狗 2 3 IWDG框图 三 IWDG配置步骤 四 IWDG配置程序 4 1 IWDG初始化程序 4 2 喂狗 五 应用实例 一 IWDG简介
  • 恶意代码的分类

    计算机病毒 注意这是狭义上的定义 和网络蠕虫都可以进行自我传播 那他们的本质区别是什么 计算机病毒 一组能进行自我传播 需要用户干预来触发执行的破坏性程序或代码 网络蠕虫 一组能进行自我传播 不需要用户干预即可触发执行的破坏性程序或代码 1
  • [007]爬虫系列

    一 找到首次加载的js 用源码面板打开 二 第一行打断点 格式化 三 刷新网页 成功断点 执行hook 代码如下 function use strict var cookieTemp Object defineProperty docume
  • 前端实现流程图效果_微前端在58商业的探索实践

    导读 商业FE部门分四个业务组 每个组内迭代着多个中后台应用 其中有跨组协作项目 这些项目的特点是UI UE相似 有较多的组件 逻辑复用场景 技术栈统一为VUE 且项目在不断迭代中 实践微前端架构能提高业务复用性 让各团队更高效的分治项目
  • npm,webpack学习中遇到的各种问题

    问题 打包的时候报错 Uncaught ReferenceError regeneratorRuntime is not defined 解决 详见babel plugin transform runtime babel pollyfill
  • Python字典操作方法--items()

    d items 返回字典中的所有键值对信息 返回结果是Python的一种内部数据类型dict items 如果希望更好的使用返回结果 可以将其转换为列表类型 键值对以元组类型 即括号形式 表示 gt gt gt d 2018 小明 2019
  • Flutter与Native通信原理剖析与实践

    通信原理 我们分几种场景来介绍Flutter和Native之间的通信 Native发送数据给Flutter Flutter发送数据给Native Flutter发送数据给Native 然后Native回传数据给Flutter Flutter
  • 系统服务器有哪几种,服务器的操作系统有哪几种

    服务器的操作系统有哪几种 内容精选 换一换 切换操作系统是为您的云服务器重新切换一个系统盘 切换完成后云服务器的系统盘ID会发生改变 并删除原有系统盘 如果云服务器当前使用的操作系统不能满足业务需求 如软件要求的操作系统版本较高 您可以选择
  • 【yarn】yarn RMContainer 状态机正常执行流程

    1 概述 上一篇文章 Yarn Yarn Service端如何处理客户端提交的任务 在上一篇文章中 我们知道服务器接收到客户端提交的任务之后 会启动多个状态机进行联合操作 最终来解决任务提交之后的全流程 多个状态机合作完成任务 然后我们看了
  • 工业相机SDK二次开发

    1 工业相机编程模型和流程 2 工业相机SDK接口使用总结 3 Basler Pylon工业相机SDK的使用 4 Pylon 以实时图像采集讲解PylonC SDK使用流程 5 关于使用维视工业相机 SDK 采集图像的问题 6 工业相机SD
  • 【快速上手系列】使用七牛云+webuploader实现对象云存储(OSS)

    快速上手系列 使用七牛云 webuploader实现对象云存储 OSS 步骤 一 七牛云配置 1 新建存储空间 进入七牛云 注册登录 进入控制台 选择对象存储 Kodo 选择空间管理 新建空间 免费30天 写好了之后点击确定 2 获取 Ac
  • es--基础--9.2--SpringBoot注解--Field--介绍

    es 基础 9 2 SpringBoot注解 Field 介绍 内容 Retention RetentionPolicy RUNTIME Target ElementType FIELD Documented Inherited publi
  • node笔记01——Nodejs学习之fs模块、最齐全的node.js学习,包含练习案例整理

    Nodejs学习之fs模块 初始node js 浏览的中的JavaScript主要是有JavaScript核心语法和webAPI组成 浏览器中因为使用了JavaScript解析引擎 所以JavaScript代码才可以再浏览器中被执行 不同浏