2024年最新nodejs项目实战教程05——Nodejs中的fs模块,小红书 java面试

Node.js 入门练习项目实战 本文还有配套的精品资源,点击获取 简介:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,允许使用 JavaScript 进行服务器端编程。本实践指南旨在帮助初学者快速掌握 Node.js 的核心概念和关键技能,包括事件驱动、非阻塞 I/O 模型、模块系统等。通过一系列练习,学习 Node.js 的安装配置、基础程序编写、文件系统操作、... 阅读详情
react和vue的比较

相同
1)vitual dom
2)组件化
3)props,单一数据流

不同点
1)react是jsx和模板;(jsx可以进行更多的js逻辑和操作)
2)状态管理(react)
3)对象属性(vue)
4)vue:view——medol之间双向绑定
5)vue:组件之间的通信(props,callback,emit)

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

})

在这里插入图片描述

文件创建成功,并且出现了写入的内容。

在这里插入图片描述

如果修改写入内容,再次执行,就会将原来文件中的内容替换掉。

5. fs.appendFile 追加文件内容

=======================================================================================

app.js:

const fs = require(‘fs’)

// 4 fs.appendFile 追加写入文件内容

fs.appendFile(‘./css/base.css’,‘body{margin:0;padding:0;}’,(err)=>{

if(err){

return console.log(err)

}

console.log(‘appendFile 成功’)

})

在这里插入图片描述

可以看到,如果首次执行 fs.appendFile 往不存在的文件中追加内容,和 fs.writeFile 功能一致,都会先创建该文件,之后在写入内容。

但是如果是往已经存在的文件中写入内容:

const fs = require(‘fs’)

fs.appendFile(‘./css/base.css’,‘\n.el-button{padding:10px;}’,(err)=>{

if(err){

return console.log(err)

}

console.log(‘appendFile 成功’)

})

在这里插入图片描述

fs.appendFile 会往已经存在的内容进行追加要加入的内容,而非覆盖。

6. fs.readFile 读取文件内容

=====================================================================================

app.js:

const fs = require(‘fs’)

fs.readFile(‘./html/index.html’,(err,data)=>{

if(err){

return console.log(err)

}

console.log(data)

console.log(data.toString())

})

在这里插入图片描述

fs.readFile 的回调函数中,返回的是文件的Buffer数据,需要通过toString()转化为我们熟悉的字符串。

7. fs.readdir 读取目录

==================================================================================

app.js:

const fs = require(‘fs’)

// 6 fs.readdir 读取目录

fs.readdir(‘./html’,(err,data)=>{

if(err){

return console.log(err)

}

console.log(data)

})

在这里插入图片描述

为了测试创建了test.html文件和js文件夹,可以看到无论是文件还是文件夹,fs.readdir 都能够读取。

8. fs.rename 重命名文件

==================================================================================

为了测试,先创建一个index.css文件

在这里插入图片描述

app.js:

const fs = require(‘fs’)

fs.rename(‘./css/index.css’,‘./html/test.css’,(err)=>{

if(err){

return console.log(err)

}

console.log(‘移动/重命名文件成功’)

})

在这里插入图片描述

可以看到的是,fs.rename不仅有重命名文件的功能,还可以移动文件的位置。

9. fs.rmdir 和 fs.unlink 删除目录和删除文件

=================================================================================================

为什么要把这两个API放在一起说明呢?让我们先看看下面这个例子。

先在js文件夹下创建两个js文件。

app.js:

const fs = require(‘fs’)

// 8 fs.rmdir 删除目录

fs.rmdir(‘./html/js’,(err)=>{

if(err){

return console.log(err)

}

console.log(‘删除目录成功’)

})

在这里插入图片描述

报错,提示删除的目录不为空,说明rmdir这个API智能删除空的目录。因此我们就需要先使用fs.unlink删除该目录底下的文件。

const fs = require(‘fs’)

// 9 fs.unlink 删除文件

fs.unlink(‘./html/js/index.js’,(err)=>{

if(err){

return console.log(err)

}

console.log(‘删除文件成功’)

})

fs.unlink(‘./html/js/test.js’,(err)=>{

if(err){

return console.log(err)

}

console.log(‘删除文件成功’)

})

在这里插入图片描述

此时,再次使用fs.rmdir:

在这里插入图片描述

js目录就可以被删除了。

10. fs模块练习 和 mkdirp 的使用

=======================================================================================

10.1 练习:判断服务器上是否有upload这个目录,如果没有就创建这个目录,如果有的话就不操作。 (用于图片上传)


在这里插入图片描述

app.js:

// 判断服务器上是否有upload这个目录,如果没有就创建这个目录,如果有的话就不操作。 (用于图片上传)

const fs = require(‘fs’)

const path = ‘./upload’

fs.stat(path,(err,data)=>{

if(err){

// 创建目录

return mkdir(path)

}

else if(data.isDirectory()){

console.log(${path} 文件夹已存在)

}

else if(data.isFile()){

// 如果存在相同名称的文件的话,就需要先删除该文件,再执行创建目录操作

fs.unlink(path,(err)=>{

if(!err){

mkdir(path)

}

else{

console.log(‘请检测传入的值是否正确’)

}

})

}

})

function mkdir(path){

fs.mkdir(path,(err)=>{

if(err){

return console.log(err)

}

console.log(创建 ${path} 目录成功)

})

}

在这里插入图片描述

如果再次执行:

在这里插入图片描述

删除upload目录,创建一个upload文件,再执行:

在这里插入图片描述

在这里插入图片描述

10.2 mkdirp的使用


mkdirp可以说是为了上面的场景而创建的一个api,用于更加简便的创建目录。

(1)下载mkdirp:

npm i mkdirp

(2)app02.js:

const mkdirp = require(‘mkdirp’)

mkdirp(‘./upload02’).then(made =>{

console.log(made)

})

在这里插入图片描述

如果当前没有该目录,则会直接创建该目录,并再回调中输出路径,否则输出undefined。

在这里插入图片描述

也可以用于生成多级目录。

但是这样其实还有一个弊端,就是当该目录存在一个没有任何后缀的相同文件名的文件时,执行创建目录操作就会有异常。

在这里插入图片描述

10.3 练习:遍历wwwroot该目录下的所有文件


先创建wwwroot及其底下的几个目录和文件。

app.js:

ES6

  • 列举常用的ES6特性:

  • 箭头函数需要注意哪些地方?

  • let、const、var

  • 拓展:var方式定义的变量有什么样的bug?

  • Set数据结构

  • 拓展:数组去重的方法

  • 箭头函数this的指向。

  • 手写ES6 class继承。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

微信小程序

  • 简单描述一下微信小程序的相关文件类型?

  • 你是怎么封装微信小程序的数据请求?

  • 有哪些参数传值的方法?

  • 你使用过哪些方法,来提高微信小程序的应用速度?

  • 小程序和原生App哪个好?

  • 简述微信小程序原理?

  • 分析微信小程序的优劣势

  • 怎么解决小程序的异步请求问题?

样的bug?

  • Set数据结构

  • 拓展:数组去重的方法

  • 箭头函数this的指向。

  • 手写ES6 class继承。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

微信小程序

  • 简单描述一下微信小程序的相关文件类型?

  • 你是怎么封装微信小程序的数据请求?

  • 有哪些参数传值的方法?

  • 你使用过哪些方法,来提高微信小程序的应用速度?

  • 小程序和原生App哪个好?

  • 简述微信小程序原理?

  • 分析微信小程序的优劣势

  • 怎么解决小程序的异步请求问题?

NodeJs实战项目 黑马程序员 大事件后端接口编写。 阅读详情

相关推荐

Node.js 示例项目:nodeapp实战指南

本文还有配套的精品资源,点击获取 简介:本示例节点应用项目展示了一个基础的Node.js应用程序的构建过程,涵盖了从项目设置到基本功能实现的各个方面。学习者将通过本教程了解到Node.js的核心概念,如模块系统、异步编程和路由处理,以及如何使用npm和Express框架。此外,还会介绍MVC架构的使用、日志记录和错误处理、以及测试和部署的最佳实践。整个项目是针对初学者设计的...

weixin_31315007的博客 1465

使用Node.js完成的第一个项目的实践总结

node 目录(?)[+] 项目简介 这是一个资产管理项目,主要的目的就是实现对资产的无纸化管理。通过为每个资产生成二维码,来联合移动终端完成对资产的审核等。这个项目既提供了Web端的管理界面也提供移动端(Andorid)的资产审核、派发等相关功能。 我们用Node.js构建该项目的Web端以及移动端的Serveice API。 项目主框架:Express 简介 Exp

AI开源工具分享 1945

Spring Boot 构建war 部署到tomcat下无法在Nacos中注册服务

因此,当使用外部容器时,如此处的 Tomcat 来部署项目,AbstractAutoServiceRegistration 就不能监听到容器启动事件了,也就不会尝试向服务注册中心注册当前这个微服务,那么注册就失败了,并且也就没有异常信息了。自定义获取获取外部容器端口的方法, 然后监听应用启动事件,当应用被启动时,获取外部容器启动的端口号,然后将这个 port 设置到 NacosAutoServiceReigistration 中。在启动类同级目录,复制下面代码即可(不需要修改,直接构建war即可)

ttyy1112的专栏 2519

Nodejs入门实战一篇精通

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

冒险的梦想家的博客~ 3859

HEC-HMS水文建模从入门到精通:手把手教你安装与配置(附常见问题解决)

本文详细指导HEC-HMS水文建模软件的安装与配置,重点解析了基于InstallShield Wizard的安装流程,并提供了针对常见错误代码(如-6003)的解决方案。旨在帮助水文、水利领域从业者快速搭建稳定的建模环境,为后续流域模拟与洪水预报奠定基础。

weixin_29213827的博客 496

可信数据空间:可信空间、区域功能节点、业务功能节点、连接器的关联关系

可信数据空间通过分层架构实现安全数据共享:可信空间作为顶层制定全局规则;区域功能节点协调辖区内功能节点协作;功能节点提供具体数据服务;连接器作为唯一通信通道确保安全交互。系统采用"规则自上而下约束,数据自下而上流动"机制,通过分层治理和标准化连接,在保证数据主权的同时实现跨域协作,具有策略分级执行、去中心化治理等特性,支持灵活扩展业务场景。

友莘居士的博客 1685

nodejs mkdirp

https://www.npmjs.com/package/mkdirp能够生成创建文件夹中间所有层级demovar mkdirp = require("mkdirp"); mkdirp('/a/b/c/d', function (err) { if (err) console.error(err) else console.log('pow!') });

ISaiSai的专栏 4976

基于ROS的机械臂手眼标定-Aruco使用与相机标定

基于ROS的机械臂手眼标定-Aruco使用与相机标定 折腾了一段时间的机械臂的手眼标定,相关资料挺多的,但使用起来都比较复杂,新手一般比较难搞懂。于是想做一个比较简单易懂易用的手眼标定程序。 程序都是Copy的开源代码,所以也开源出来: 开源地址:https://gitee.com/ohhuo/handeye-calib 作为手眼标定中的重要一环,相机中标定板位姿关系获取直接影响标定精度,我们使用aruco这个开源程序来实现坐标的获取。 #mermaid-svg-WkFpFkV4QqzXMvJ4 .labe

生活不止眼前的苟且 1万+

Nodejs——fs文件系统模块

它提供了丰富的函数和方法,可以进行文件的读取、写入、复制、删除等操作,同时也支持目录的创建、遍历和修改等操作。使用fs模块,你可以在Node.js环境中轻松地与文件系统交互。使用 fs 模块的时候,尽量使用 __dirname 将路径转化为绝对路径,这样可以避免相对路径产生的。相对路径中所谓的 当前目录 ,指的是 命令行的工作目录 ,而并非是文件的所在目录。在 Node.js 中,我们可以使用。在 Node.js 中,我们可以使用。在 Node.js 中,我们可以使用。

LSH_的个人博客 1万+

Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程

本文主要介绍了Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 安装教程 2.1 安装OpenClaw 2.2 配置模型 2.3 对话 3. 后续使用步骤 4. 关闭程序

weixin_43178406的博客 11万+

麒麟操作系统安装教程(保姆级)

本文介绍了如何在VM中安装麒麟操作系统,文章详细的介绍了麒麟操作系统按钻过步骤。

啊渊的专栏 1万+

【项目实战】nodejs 实战-图书管理系统

第一步:新建js文件先安装这两个指令

weixin_41033048的博客 1万+

游戏引擎定制化:大厂如何玩转性能极限(大白话生动有趣版)

游戏大厂如何深度定制游戏引擎?本文系统解析了商业引擎的局限性及大厂定制化的核心诉求。主要内容包括: 大厂定制引擎的根本原因:性能瓶颈、差异化需求、自有生态整合等 主流引擎的优劣势对比及适用场景 定制化重点领域:渲染管线优化、物理系统重构、网络架构改造等 全流程定制方案:从需求分析到模块重构再到工具链开发 典型案例:如腾讯CF手游的渲染优化、原神的热更新系统等 文章指出,顶级游戏产品必须对引擎核心模块动刀,通过深度定制实现性能突破和创新功能开发。同时提供了风险规避建议和技术演进趋势,为游戏开发者提供了宝贵的实

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 634

NODE.JS项目实战

一、项目框架的搭建 1.建立项目文件夹 (1)手动在本地建立 (2)在远程仓库创建项目(私有),创建后,将项目文件夹克隆至本地 2.用VSCODE打开项目文件夹 3. 在VSCODE终端执行以下命令 npm init -y npm install koa (基于koa的项目) 4.需求分析 (1) 项目功能描述:文章内容...

3668

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【Node.js】项目开发实战(中)

node.js注册接口和登录接口的演示,包括密码的加密解密,token的生成和解析,以及表单的验证,本文介绍了开发用户注册和登录接口的实现步骤,主要包括数据库配置、密码加密处理和表单验证三个核心部分。首先在MySQL Workbench中创建用户信息表ev_users,设置自增ID。然后通过mysql2模块连接数据库,并安装bcryptjs对密码进行加密存储。最后使用Joi和express-joi实现表单数据验证,优化了错误处理机制。文中详细展示了各环节的代码实现,包括数据库操作、密码加密逻辑以及表单验证规

weixin_44899940的博客 1091

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

前端Node.js实战--使用express搭建后端服务

作为前端开发,Nodejs已经成了很多公司对我们这一岗位的硬性要求,而 Express 框架则是其中知名度最高、也是最受欢迎的Nodejs开发框架,它帮助我们封装了Nodejs底层的API,屏蔽了大量的繁琐的细节,让我们只需要关注业务开发就行了,极大的降低了学习的成本。路由中间件静态文件服务模板引擎。

黑马程序员官方博客 4262

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Nodejs入门(一)fs模块

包含nodejs之fs模块,文件操作、文件夹操作、查看资源状态、以及fs实践

m0_71927557的博客 1765

Node项目实战总结

一般在项目文件夹下,新建文件夹router,根据对应的业务逻辑创建不同的路由文件,例如用户相关,则创建user.js文件。通过命令npminit-y在项目文件夹下初始化项目,得到package.json包配置文件。2、配置cors跨域npmicors。3、配置解析表单数据的中间件。...

hbmern的博客 821

Node项目实战开发-博客系统

Nodejs项目实战开发-博客系统(已完结) 个人博客系统 前言: 开发技术 技术 版本 Node ^14.3.0 ejs ^3.1.3 express ^4.17.1 cookie-session ^1.4.0 mysql ^2.18.1 开发工具 技术 版本 VSCode ^1.47.3.0 MySql ^8.0.12 PhpStudy ^8.1.0.7 第一阶段 博客前台 第二阶段 博客后台 博客前台 项目环境搭建 首先初始化项目 在

码小余の博客 1万+

前(vue3)后(node.js)端项目实战

前后端项目实战

mygoes 2277

node中fs的用法总结

node中fs的用法总结 fs模块为nodejs的核心模块之一,主要处理文件的读写、复制、s删除、重命名等操作。当需要使用该模块时,需要先导入该文件 var fs = require('fs'); nodejs文件系统中的方法均有异步和同步两种版本,例如读取文件内容的函数有异步的fs.readFile()和同步的fs.readFileSync(). NodeJS 中,标识位代表着对文件的操作方式,如可读、可写、即可读又可写等等,在下面用一张表来表示文件操作的标识位和其对应的含义。 r:读取 w:写入 s

weixin_46995731的博客 1万+

在node.js中使用mkdirp插件

如果文件夹不存在,则创建文件夹;如果文件夹存在,则不做任何处理; 此外,还可以创建多级文件夹 一、下载 cnpm i -S mkdirp 二、引入 let mkdirp = require('mkdirp') 三、使用 以下是最初的目录 新建upload文件夹 新建多级目录 ...

944

node-mkdirp 使用教程

node-mkdirp 使用教程 1. 项目介绍 node-mkdirp 是一个 Node.js 的模块,它提供了一个类似于 Unix 中的 mkdir -p 命令的功能,允许递归地创建目录。这意味着如果你需要创建一个嵌套的目录结构,比如 /tmp/a/b/c,即使 /tmp、/tmp/a 和 /tmp/a/b 都不存在,node-mkdirp 也会创建它们。 这个模块非常适用于需要在 Node....

gitblog_00068的博客 361

Node.js 中的 fs 模块详解

Node.js 中的 fs 模块详解

1726

【前端开发】从0到1:Node.js 全栈开发实战指南

本文全面介绍了Node.js的核心知识与开发实践。首先阐述了Node.js作为基于V8引擎的JavaScript运行时环境的特点,包括事件驱动、非阻塞I/O模型和丰富的npm生态系统。接着详细讲解了开发环境搭建、基础语法、核心模块(如fs、http、path等)的使用方法。重点剖析了异步编程的三种实现方式:回调函数、Promise和async/await,并比较了它们的优缺点。在Web开发实战部分,展示了使用Express框架搭建服务器、处理HTTP请求响应、与数据库交互等关键技能。

大雨淅淅的博客 2547
上一篇: 2024年最新NodeJS快速入门必备技能(2),面试中那些技巧最有用
下一篇: 2024年最新jQuery效果,蚂蚁金服前端架构面试题,2024年最新前端手写面试题
普通网友
博客等级 码龄5年 3419粉丝 477原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值