首页 > 编程语言 >【Node.js】 - 概念 fs path模块 压缩HTML代码

【Node.js】 - 概念 fs path模块 压缩HTML代码

时间:2023-11-17 20:00:47浏览次数:35  
标签:Node fs console log err js path

一、概念

Node.js是一个跨平台javaScript运行环境,使开发者可以搭建服务器端的JavaScript应用程序

作用:

1.编写数据接口,提供网页资源浏览功能等等

2.前端工程化

二、什么是前端工程化

开发项目直到上线,过程中集成的所有工具和技术

Node.js是前端工程化的基础(因为Node.js可以主动读取前端代码内容)

【Node.js】 - 概念 fs path模块 压缩HTML代码_html

三、Node.js为何能执行JS

首先:浏览器能执行JS代码,依靠的是内核中的V8引擎(C++程序)

其次:Node.js是基于ChromeV8引擎进行封装(运行环境)

区别:都支持ECMAScript标准语法,Node.js有独立的API

【Node.js】 - 概念 fs path模块 压缩HTML代码_js代码_02

注意:Node.js环境没有DOM和BOM等

四、代码示例

console.log('Hello,Node.js')
for (let i = 0; i < 3; i++) {
    console.log(6)
}

【Node.js】 - 概念 fs path模块 压缩HTML代码_html_03

在集成终端输入node +相对路径(也就是该文件夹下的某一个文件名字)

五、Node.js中的fs模块

1.概念

模块:类似插件,封装了方法/属性

fs模块封装了与本机文件系统进行交互的方法/属性

2.语法

1.加载fs模块对象

2.写入文件

3.读取文件内容

const fs = require('fs') // fs是模块标识符:模块的名字
fs.writeFile('文件路径','写入内容',err => {
    //写入后的回调函数
})

fs.readFile('文件路径',(err,data) =>{
    //读取后的回调函数
    //data 是文件内容的 Buffer 数据流
})

3.代码示例

const fs = require('fs')
fs.writeFile('./test.txt', 'hello,node.js', (err) => {
    if (err) {
        console.log(err)
    } else {
        console.log('写入成功')
    }
})
fs.readFile('./test.txt', (err, data) => {
    if (err) console.log(err)
    //data是buffer 16进制数据流对象
    else console.log(data.toString())
})

【Node.js】 - 概念 fs path模块 压缩HTML代码_html_04

六、path模块-路径处理

1.为何使用path模块

在Node.js代码中,相对路径是根据终端所在路径来查找的,可能无法找到你想要的文件

我们用一个例子来说明

我在nodejs文件夹下的03文件夹下的index.js代码中想读取nodejs文件夹下的test.txt里的内容

const fs = require('fs')
// 1. 引入 path 模块对象
const path = require('path')
fs.readFile(path.join('../test.txt'), (err, data) => {
  if (err) console.log(err)
  else console.log(data.toString())
})

【Node.js】 - 概念 fs path模块 压缩HTML代码_Node.js_05

【Node.js】 - 概念 fs path模块 压缩HTML代码_html_06

为什么会报错呢?因为此时我们终端的位置在nodejs这个位置,此时终端只会从该位置开始向父级文件去查找

【Node.js】 - 概念 fs path模块 压缩HTML代码_js代码_07

2.解决方法

在Node.js代码中,使用绝对路径

——dirname内置变量(获取当前模块目录-绝对路径)

注意:path.join()会使用特定于平台的分隔符,作为定界符,将所有给定的路径片段连接在一起【Node.js】 - 概念 fs path模块 压缩HTML代码_html_08【Node.js】 - 概念 fs path模块 压缩HTML代码_html_09

3.语法

1.加载path模块

2.使用path.join方法,拼接路径                             

【Node.js】 - 概念 fs path模块 压缩HTML代码_html_10

示例代码如下:

onst fs = require('fs')
// 1. 引入 path 模块对象
const path = require('path')
// 2. 调用 path.join() 配合 __dirname 组成目标文件的绝对路径
console.log(__dirname)
fs.readFile(path.join(__dirname, '../test.txt'), (err, data) => {
  if (err) console.log(err)
  else console.log(data.toString())
})

【Node.js】 - 概念 fs path模块 压缩HTML代码_Node.js_11

七、案列

/**
 * 目标1:压缩 html 代码
 * 需求:把回车符 \r,换行符 \n 去掉,写入到新 html 文件中
 *  1.1 读取源 html 文件内容
 *  1.2 正则替换字符串
 *  1.3 写入到新的 html 文件中
 */
// 1.1 读取源 html 文件内容
const fs = require('fs')
const path = require('path')
fs.readFile(path.join(__dirname, 'public/index.html'), (err, data) => {
  if (err) console.log(err)
  else {
    const htmlStr = data.toString()
    //1.2正则替换字符串
    const resultStr = htmlStr.replace(/[\r\n]/g, '')
    console.log(resultStr)
    //1.3 写入到新的 html 文件中
    fs.writeFile(path.join(__dirname, 'dist/index.html'), resultStr, err => {
      if (err) console.log(err)
      else console.log('写入成功')
    })
  }
})

【Node.js】 - 概念 fs path模块 压缩HTML代码_Node.js_12


标签:Node,fs,console,log,err,js,path
From: https://blog.51cto.com/u_15858858/8453418

相关文章

  • vscode配置js片段及格式处理
    1、前期工作需要将代码块处理成要求的格式,即变量用$开头标记,每一个tab缩进用\t替换,代码中的双引号用转义字符\"替换,每一行放双引号中,行末加逗号。。。具体操作及截图如下:(1)、代码中的变量用“$1”,“$2”,“$3”....等替换(2)、在文本编辑器或者vscode中将缩进用\t替换(3)、将代......
  • 2023-11-17 记录formly+antd+dayjs的shortcuts设置筛选项全部、昨天、今天
    业务中需要用到formly+antd的组件DatePicker日期组件,其中要给该组件添加筛选项(如:全部、昨天、今天),日期的格式化用到了日期插件dayjs(注意不是momentjs)shortcuts=[{text:'全部',onClick:()=>([null,null])},...shortcutsData]如果只是设置昨天或者今天,只需传开始和结束......
  • JSON 格式的接口测试流程【Eolink Apikit】
    在进行JSON格式的接口测试时,需要使用工具发送HTTP请求并获取响应。测试工具可以是单独的测试框架,如EolinkApikit。测试人员需要根据接口文档和测试用例编写测试脚本,然后运行测试并分析结果,以确保接口的质量和稳定性。当我们后端需要从前端拿到这些JSON数据,我们应该如何测试自己......
  • Nodejs打包构建时长优化
    优化策略底层软件硬件调整CI过程中主要的压力还是集中在IO方向,增加CI节点提高整个CI池子的容量,把之前节点使用的硬盘更换为SSD可以增加IO吞吐量。同时把用于CI的node节点在K8S集群中隔离开来,让CI服务独享这些资源避免与其他资源发生抢占。CI工作台优化优化CI工作台的代码,减......
  • nodejs项目打包提速
    node打包耗时分析             插件安装    cnpmi hard-source-webpack-plugin    官方地址      https://www.npmjs.com/package/hard-source-webpack-plugin    配置之后初次打包会觉得没什么差异,主要是会先......
  • 部署NFS、Samba、iscsi这三种网络存储步骤与使用
    第一个:Samba服务端部署参考:(https://zhuanlan.zhihu.com/p/475405233)systemctlstartsmb//启动samba服务/etc/samba/smb.conf//samba配置文件登陆方式:在我的电脑输入\\服务器主机名有两种方式:认证与不认证认证客户端通过输入服务端用户和密码认证后,访问samba服务的......
  • js-转译
    varHtmlUtil={/*1.用浏览器内部转换器实现html编码(转义)*/htmlEncode:function(html){//1.首先动态创建一个容器标签元素,如DIVvartemp=document.createElement("div");//2.然后将要转换的字符串设置为这个元素......
  • 纯css js 写出星空背景
     每次刷新星星的位置都是随机的,可以根据自己需求调整星星的数量和位置,具体代码如下,直接复制就可运行1<!DOCTYPEhtml>2<html>3<head>4<title>RandomStarrySky</title>5<style>6body{7margin:0;8overflow:......
  • 启动open5GS的核心网和srsLTE的enodeB时遇到报错S1-Setup failure Cannot find Served
    问题的场景启动open5GS的核心网和srsLTE的enodeB、ue,遇到报错S1-SetupfailureCannotfindServedTAI,导致enodeB连接不上mme。报错信息S1-SetupfailureCannotfindServedTAICheck'mme.tai'configurationCause:misc-unknown-PLMN报错原因mme配置的PLMN和enodeB配......
  • Spring Boot 访问静态资源css/js
    一、前言我们用SpringBoot搭建Web应用时(如搭建一个博客),经常需要在Html中访问一些静态资源,比如:css样式;js脚本;favicon.ico图标等;而在SpringBoot中如果没有做任何配置,是无法直接访问静态资源的,通常会报404错误二、SpringBoot访问静态资源的默认目录SpringBoot访问......