node模块

news2024/11/14 14:21:49

path模块

const path = require('path');
const filePath = '/home/user/docs/file.txt';
console.log(path.basename(filePath)); //file.txt
console.log(path.extname(filePath)); //.txt
console.log(path.dirname(filePath));  ///home/user/docs

const joinPath = path.join('/node', './index.js')
console.log(joinPath); // /node/index.js

// 拼接后的完整路径
const resolvePath = path.resolve('node', './index.js')
console.log(resolvePath); ///Users/cm/Documents/react/react-project-init/my-app/node/node/index.js

// 获取当前工作目录的完整路径
const currentPath = path.resolve();
console.log(currentPath); // /Users/cm/Documents/react/react-project-init/my-app/node

console.log('当前文件所在目录的绝对路径是:',__dirname); // /Users/cm/Documents/react/react-project-init/my-app/node

const joinPath1 = path.join(__dirname,'../package.json');
console.log(joinPath1); // /Users/cm/Documents/react/react-project-init/my-app/package.json

fs模块

const fs = require('fs');
const fsp = require('fs/promises');
fs.readFile('./index1.txt','utf8',(err,data) => {
    if(!err) {
        console.log(data.toString());
    }
})
let txt = fs.readFileSync('./index1.txt','utf8');
console.log(txt.toString(),'同步');

// 创建读取流,适用于读取大文件
const readStream = fs.createReadStream('./index1.txt','utf8');
readStream.on('data',(chunk) => {
    console.log(chunk,'chunk');
})
readStream.on('end',() => {
    console.log('close');
})

const writeStreamList = ['创建读取流,适用于读取大文件','创建写入流,适用于携入大文件','开启 recursive,递归创建'];
// 创建写入流,适用于携入大文件
const writeStream = fs.createWriteStream('./index1.txt');
writeStreamList.forEach(item => {
    writeStream.write(item + '\n')
})
writeStream.end()
writeStream.on('finish',()=>{
    console.log('写入完成')
})

// 开启 recursive,递归创建
fs.mkdir('path/test/ccc', { recursive: true },(err)=>{
    console.log(err);
})

fs.rm('./path/test/ccc',(err) => {

})

// 重命名
// fs.renameSync('./index1.txt','./index1.txt')

// 监听文件变化
fs.watch('./index1.txt',(event,filename)=>{
    console.log(event,filename)
})

// 写入文件
fs.writeFileSync('index1.txt', '\nvue之父\n鱿鱼须',{
    flag: 'a'
})
// 追加
fs.appendFile('index1.txt', '\nunshift创始人\n麒麟哥',()=>{
    console.log('追加完成');
})


fs.linkSync('./index1.txt', './index2.txt') //硬链接

fs.symlinkSync('./index1.txt', './index3.txt' ,"file") //软连接

crypto模块

const crypto = require('crypto');
// 要计算哈希的数据
let text = '123456';
// 创建哈希对象,并使用 MD5 算法,也有 sha256 算法
const hash = crypto.createHash('md5'); // Hash: e10adc3949ba59abbe56e057f20f883e
// const hash = crypto.createHash('sha256'); // Hash: 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
// 更新哈希对象的数据
hash.update(text);
// 计算哈希值,并以十六进制字符串形式输出
const hashValue = hash.digest('hex');
console.log('Hash:', hashValue);

// MD5和SHA-256都是常见的哈希算法,用于将任意长度的数据转换为固定长度的哈希值。它们的比较如下:
// 1. 安全性:SHA-256比MD5更安全。MD5已经被证明存在碰撞攻击,即不同的输入可以生成相同的哈希值,从而导致安全问题。SHA-256则没有这个问题,目前还没有被证明存在碰撞攻击。
// 2. 哈希值长度:SHA-256的哈希值长度为256位,比MD5的128位更长。这意味着SHA-256的哈希值空间更大,哈希冲突的可能性更小。
// 3. 计算速度:MD5比SHA-256计算速度更快。但是,这并不意味着MD5更好,因为计算速度越快,越容易受到暴力破解和彩虹表攻击。
// 4. 应用场景:SHA-256通常用于需要更高安全性的场景,如数字签名、密码学和区块链等,而MD5则适用于需要快速计算哈希值的场景,如文件完整性检查和密码验证等。
// 综上所述,SHA-256比MD5更安全,但计算速度可能稍慢。在选择哈希算法时,应根据实际应用场景和安全需求进行选择。

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

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

相关文章

使用 Web Search 插件扩展 GitHub Copilot 问答

GitHub Copilot 是一个由 GitHub 和 OpenAI 合作开发的人工智能代码提示工具。它可以根据上下文提示代码,还可以回答各种技术相关的问题。但是 Copilot 本身不能回答非技术类型的问题。为了扩展 Copilot 的功能,微软发布了一个名为 Web Search 的插件&am…

Rust语言在系统编程中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Rust语言在系统编程中的应用 Rust语言在系统编程中的应用 Rust语言在系统编程中的应用 引言 Rust 概述 定义与原理 发展历程 Ru…

vue+vite前端项目ci过程中遇到的问题

将项目进行ci流水线构建时,遇到了npm run build 构建完成后命令行不会终止的问题,导致了无法进行下一个步骤。如下图: 排查了好久找到事vite.config.js的配置出了问题,如图所示,将build下的watch改为false即可解决问…

Python 获取PDF的各种页面信息(页数、页面尺寸、旋转角度、页面方向等)

目录 安装所需库 Python获取PDF页数 Python获取PDF页面尺寸 Python获取PDF页面旋转角度 Python获取PDF页面方向 Python获取PDF页面标签 Python获取PDF页面边框信息 了解PDF页面信息对于有效处理、编辑和管理PDF文件至关重要。PDF文件通常包含多个页面,每个页…

企业级RAG(检索增强生成)系统构建研究

— 摘要 检索增强生成(Retrieval-Augmented Generation,RAG)技术已经成为企业在知识管理、信息检索和智能问答等应用中的重要手段。本文将从RAG系统的现状、方法论、实践案例、成本分析、实施挑战及应对策略等方面,探讨企业如何…

前端学习八股资料CSS(二)

更多详情:爱米的前端小笔记,更多前端内容,等你来看!这些都是利用下班时间整理的,整理不易,大家多多👍💛➕🤔哦!你们的支持才是我不断更新的动力!找…

SAP 创建物料主数据报错:估价范围3010还没有生产式的物料帐簿

通过接口创建物料主数据(模拟MM01),报错如图: 处理方案1:(我的不行,提示已经是生产的) 将评估范围的物料分类账设置为生产 事务码: CKMSTART - 物料分类帐的生产开始 处理方案2&a…

扫雷游戏代码分享(c基础)

hi , I am 36. 代码来之不易👍👍👍 创建两个.c 一个.h 1:test.c #include"game.h"void game() {//创建数组char mine[ROWS][COLS] { 0 };char show[ROWS][COLS] { 0 };char temp[ROWS][COLS] { 0 };//初始化数…

leetcode 148. 排序链表 中等

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 示例 1: 输入:head [4,2,1,3] 输出:[1,2,3,4] 示例 2: 输入:head [-1,5,3,4,0] 输出:[-1,0,3,4,5]示例 3: …

Elasticsearch中什么是倒排索引?

倒排索引(Inverted Index)是一种索引数据结构,它在信息检索系统中被广泛使用,特别是在全文搜索引擎中。倒排索引允许系统快速检索包含给定单词的文档列表。它是文档内容(如文本)与其存储位置之间的映射&…

excel-VLOOKUP函数使用/XVLOOKUP使用

多个窗口同时编辑表格,方便对照操作 使用开始-视图-新建窗口 将战区信息表的三列数据匹配到成交数据表上 可以使用VLOOKUP函数 有4个参数(必须要查找的值, 要查找的区域,要返回区域的第几列数据,一个可选参数查找匹…

netcore 静态文件目录浏览

环境:Net6 string dirPath "C:\\Users\\15298\\Pictures"; var fileProvider new PhysicalFileProvider(dirPath); app.UseStaticFiles(new StaticFileOptions {FileProvider fileProvider,RequestPath new PathString(("/files")) }); // …

1Panel修改PostgreSQL时区

需求 1Panel安装的PostgreSQL默认是UTC时区,需要将它修改为上海时间 步骤 进入PostgreSQL的安装目录 /opt/1panel/apps/postgresql/postgresql/data打开postgresql.conf文件 修改: log_timezone Asia/Shanghai timezone Asia/Shanghai保存后重启…

函数式接口和stream

函数式接口(Functional Interface)是Java 8引入的一个新特性,它只有一个抽象方法的接口。这意味着你可以将一个函数式接口作为参数传递给方法,或者将其实现为一个lambda表达式。函数式接口的主要目的是允许你以声明性方式处理操作…

Oracle 高水位线和低-高水位线(High Water Mark Low High Water Mark)

在Oracle的逻辑存储结构中(表空间-段-区-块),数据是存在数据段中的,通常一个表就是一个数据段,而段最终又由许多数据块组成。当数据存入数据块时,需要对块进行格式化,高水位线(High …

科技资讯|Matter 1.4 标准正式发布,低功耗蓝牙助力其发展

连接标准联盟(CSA)宣布推出最新的 Matter 1.4 版本,引入了一系列新的设备类型和功能增强,有望提高包括 HomeKit 在内的智能家居生态系统之间的互操作性。 设备供应商和平台能够依靠增强的多管理员功能改善多生态系统下的用户体验&…

python练习-Django web入门

python -m pip install --user requests使用API调用请求数据 处理API响应 import requestsclass Requests:def request(self):url "https://www.toutiao.com/stream/widget/local_weather/data/?city北京"headers {"Accept": "application/json;…

元器件封装

元器件封装类型 为什么越来越多用贴片元件,而不是插件元件 为什么越来越多用贴片元件,而不是插件元件 1.体积小、质量小、容易保存和运输; 2.容易焊接和拆卸。抗震效果好。 贴片元件不用过孔,用锡少。直插元件最麻烦的就是拆卸&a…

[SaaS] 数禾科技 AIGC生成营销素材

https://zhuanlan.zhihu.com/p/923637935https://zhuanlan.zhihu.com/p/923637935

自顶向下逐步求精解决LeetCode第3307题找出第K个字符II题

3307.找出第K个字符II 难度:困难 问题描述: Alice和Bob正在玩一个游戏。最初,Alice有一个字符串word"a"。 给定一个正整数k和一个整数数组operations,其中operations[i]表示第i次操作的类型。 现在Bob将要求Alice按…