NODE笔记 0

一些简单的node学习笔记记录,是Vue等前端框架的基础   入门学习备忘录            

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

node.js 内置网络服务器,是前端框架学习的基础:

概念:node.js 是开源,跨平台的JavaScript运行环境,是一款可以运行JavaScript的软件。可以开发服务端,工具类应用(Webpack,Vite,Babel),桌面应用使用 electron框架开发(Vscode,postman)。node.js 中需要了解的进程与线程基础。


一、node.js下载与调试

 下载地址 打开官网如下,点击长期维护的版本,如若下载其他版本,可以点击download。

提供中文网址,国内用的是阿里的镜像,不是官方,但是下载速度比较快,历史版本需要找到下载后删除path后的URL,地址如下:CNPM Binaries Mirror (npmmirror.com) 。安装时直接点击msi文件安装即可,注意不必安装相关工具

安装完成后,打开cmd窗口,输入 node -v 回车后显示版本号,即为安装成功 。

在vscode中安装 CodeRunner,点击右上角三角形之后运行编写的js测试文件输出结果。

二、简单的使用

0.注意事项

node 不支持BOM DOM 操作,也不支持ajax,但是支持console和定时器API,node的顶级对象不是window,而是global,es2020支持 globalThis,

1. Buffer的简单使用

Buffer:大小固定(1字节),类似数组对象,处理二进制数据,性能较好,代码实例如下

console.log("ds:buffertest  ...") ;let buf = Buffer.alloc(10);
console.log("buf: "+buf);// 2.不安全,不会清空旧数据;但是速度快
let buf_2 = Buffer.allocUnsafe(10);
console.log("buf_2: "+buf_2); // 3.from let buf_3 = Buffer.from('Alice');let buf_4 = Buffer.from([105,108,121]);
console.log("buf_3: "+buf_3); 
console.log("buf_4: "+buf_4); 
//转字符串
console.log(buf_4.toString());
//解析数组
let name = buf_3[2] ;
console.log("name:"+name) ;//溢出,了解即可
let buf_5 = Buffer.from('ds');
console.log("buf_5: "+buf_5);
buf_5[0]= 361;
console.log("buf_5[0]--overflow:"+buf_5[0]);
console.log("buf_5[0]-- "+buf_5);
//

[Running] node "e:\nodePra\tempCodeRunnerFile.js"

ds:buffertest  ...

buf: ����������

buf_2: ����������

buf_3: Alice

buf_4: ily

ily

name:105

buf_5: ds

buf_5[0]--overflow:105

buf_5[0]-- is

2.node.js 中的文件系统 fs模块(API)

fs模块是一个重要功能,可以 对硬盘中的文件进行 读/写,移动,删除,重命名,也可以读取,删除,新建文件夹。

node中相对同步,提供了效率更高的异步操作。参考博客 

一般同步操作都有 Sync 标记,

0.相关操作函数 :
方法说明
writeFile异步写入
writeFileSync同步写入
appendFile / appendFileSync追加写入
createWriteStream流式写入
readFile异步读取
readFileSync同步读取
createReadStream流式读取

文件夹操作函数: 

项目Value
mkdir / mkdirSync创建文件夹
readdir / readdirSync读取文件夹
rmdir / rmdirSync删除文件夹
1.文件写入

代码如下(示例):

/**** 新建一个ds.txt,向其中写入 abcdefg*  再追加写入*///0.导入fs模块var fs = require('fs');//1.写入文件fs.writeFile('\ds.txt','abcdefg',function (err){if(err){console.log("fail to write ! "+err);return;}else{console.log("  sucess ! ");return ;}});//2.写入追加文件fs.appendFile('\ds.txt','\r\nappdendContent',function (err){  //\r\n 换行if(err){console.log("fail to appdendwrite ! "+err);return;}else{console.log("  sucess appdend ! ");return ;}});

 node也支持流式写入以减少打开关闭文件的次数 节约资源。

let ws = fs.createWriteStream('./ds.txt');ws.write('\r\n 111111');ws.write('\r\n 222222');ws.write('\r\n 3333333');ws.write('\r\n 44444455');ws.end ;console.log(" end ! ");
 2.文件读取
let fs = require('fs');fs.readFile('\ds.txt',(err, data)=>{if(err){console.log('err: '+err);}else{console.log("data: "+data);}});//同步读取
let dataSync = fs.readFileSync('\ds.txt');
console.log("dataSync: "+dataSync);

如果使用/ds.txt,node会直接读取E盘下的ds.txt,之后显示没有这个文件。

流式读取:

//流式读取 createReadStream
let rs = fs.createReadStream('\ds.txt') ;
rs.on('data',data=>{console.log(data);console.log(data.length)
});rs.on('end',()=>{console.log("end read ! ") ;
}) ;

文件 移动与重命名:(如果移动到其他磁盘会显示报错因为跨区重命 名文件出现的权限)

fs.rename('./ds.txt','./temp/new.txt',(err)=>{if(err){ console.log(err);}else{console.log(' 完成');}
});//文件删除
fs.unlinkSync('./temp/new.txt');   console.log(' 完成');

 3.补充

文件状态查看:

let fs = require('fs');
fs.stat('./ds.txt',(err,data)=>{if(err){console.log('stat err: '+err);}else{console.log("stat data: "+data.size+'---'+data.mtime+'---'+data.isDirectory);}
});
console.log("stat Syncdata: "+fs.statSync('./ds.txt').isFile);

路径问题:

./ds.txt  :程序所在目录下的文件 ,也可以写  \ds.txt ,如果写 .\ds.txt,程序会寻找当前文件路径下的名称为 .ds.txt 的文件。也可以直接写绝对路径,但是文件移动要注意报错, 这是跨区重命名文件出现的权限问题。

对于绝对路径,也可以使用 __dirname ,将相对路径转换为绝对路径避免bug:

let fs = require('fs');
console.log('__dirname: '+fs.readFileSync(__dirname + '/ds.txt')); // __dirname

 

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python爬虫开发实战 情感分析】利用爬虫爬取城市评论并对其进行情感分析

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏: python网络爬虫从基础到实战 带你学习爬虫从基础到实战 深度学习带你感受AI的魅力 💡往期推荐: ⭐️前面比较重要的基础内容: 【Py…

安全远控如何设置?揭秘ToDesk、TeamViewer 、向日葵安全远程防御大招

写在前面一、远程控制:安全性不可忽略二、远控软件安全设置实测 ◉ ToDesk◉ TeamViewer◉ 向日葵 三、远控安全的亮点功能四、个人总结与建议 写在前面 说到远程办公,相信大家都不陌生。远程工作是员工在家中或者其他非办公场所上班的一种工作模式&am…

「PyMuPDF 专栏 」PyMuPDF创建PDF、拆分PDF

文章目录 一、本章前言二、使用PyMuPDF创建PDF文档1、实例代码2、过程详解①. 安装PyMuPDF②. 导入PyMuPDF模块③. 创建一个新的PDF文档④. 添加页面和内容⑤. 保存文档 三、使用PyMuPDF拆分PDF文档1、实例代码2、过程解析①. 导入模块②. 定义函数③. 打开源PDF文件④. 遍历页…

大模型笔记【2】 LLM in Flash

Apple最近发表了一篇文章,可以在iphone, MAC 上运行大模型:【LLM in a flash: Efficient Large Language Model Inference with Limited Memory】。 主要解决的问题是在DRAM中无法存放完整的模型和计算,但是Flash Memory可以存放完整的模型。…

大模型训练算力利用率达60%,蚂蚁开源分布式训练扩展库ATorch

近日,蚂蚁集团宣布开源大模型分布式训练加速扩展库ATorch。ATorch可针对不同模型和硬件资源,实现深度学习自动资源动态优化和分布式训练稳定性提升,帮助提升深度学习的智能性。据了解,在大模型训练中,ATorch千亿模型千…

第7章 DOM(下)

学习目标 熟悉节点的概念,能够说出节点的属性和层级 掌握节点操作,能够完成节点的获取、创建、添加、移除和复制操作 掌握事件的进阶操作,能够实现事件的监听和移除 熟悉DOM事件流,能够说出事件捕获和事件冒泡两种方式的区别 …

JavaScript版数据结构与算法(一)栈、队列、链表、集合、树

一、前言 为什么要学习数据结构与算法?最重要的就是面试要考算法,另外就是如果在实际工作当中,能够使用算法优化代码,会提升代码质量和运行效率,作为一名前端人员可能在实际中用的并不是特别多。数据结构与算法是分不…

4.6 BOUNDARY CHECKS

我们现在扩展了tile矩阵乘法内核,以处理具有任意宽度的矩阵。扩展必须允许内核正确处理宽度不是tile宽度倍数的矩阵。通过更改图4.14中的示例至33 M、N和P矩阵,图4.18创建了矩阵的宽度为3,不是tile宽度(2)的倍数。图4.…

AI红娘开启约会新时代;网易云音乐Agent实践探索;微软生成式AI课程要点笔记;ComfyUI新手教程;图解RAG进阶技术 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 👀 Perplexity 官宣 7360 万美元B轮融资,打造世界上最快最准确的答案平台 https://blog.perplexity.ai/blog/perplexity-rais…

用js做点击切换携程旅游

样式&#xff1a; <style>.domestic {width: 1200px;margin: 50px auto;}.domestic span {padding: 2px 10px;margin: 10px 10px;border-radius: 12px;cursor: pointer;float: left;border: 1px solid transparent;}.domestic > div span:hover {border-color: #f66;b…

Gartner发布2024年SASE融合战略路线图

向云计算和远程工作的转变增加了 SASE 需求&#xff0c;以实现从任何设备的安全访问。安全和风险管理领导者必须将网络和安全融合到一两个明确合作的 SASE 供应商产品中&#xff0c;并淘汰遗留的边界系统。 主要发现 安全访问服务边缘 (SASE) 框架为混合劳动力以及设备、分支机…

QML —— 示例 - Component自定义组件及加载(附完整源码)

示例效果 介绍 Component 组件是可重用的、封装的QML类型&#xff0c;具有定义良好的接口。组件通常由组件文件定义&#xff0c;即.qml文件。组件类型本质上允许在QML文档中内联定义QML组件&#xff0c;而不是作为单独的QML文件。这可能有助于重用QML文件中的小组件&#xff0c…