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.mzph.cn/news/607563.shtml

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

相关文章

华为OD机试 - 最小矩阵宽度(Java JS Python C)

题目描述 给定一个矩阵,包含 N * M 个整数,和一个包含 K 个整数的数组。 现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数。 输入描述 第一行输入两个正整数 N,M,表示矩阵大小。 接下来 N 行 M 列表示矩阵内容。 下一行包含一个正整数 K…

Linux--好玩的进度条

前言 先来看看我们想要达到的进度条效果,具体代码会在文章最后面放出。 一、创建文件及Makefile 我们需要实现声明的定义的分离,因此创建如下三个文件。 process.h prcess.c main.c。 touch process.h process.c main.c 同时还需要创建Makefi…

LeetCode 34 在排序数组中查找元素的第一个和最后一个位置

题目描述 在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间…

Ant Design Vue Table 行合并的实现方式

首先封装实现函数如下 function getRowSpanCount (data, key, mainKey, target) {if (!Array.isArray(data)) return 1// 只取出筛选项const mainData data.map(_ > { return _[mainKey] })// 只取出筛选项data data.map(_ > { return _[key] }) let preValue data[0…

数据结构与算法-栈-移掉K位数字

移掉K位数字 给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k **位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。 示例 1 : 输入:num "1432219", k 3 输出:&quo…

kubernetes ingress 详解 (包含灰度发布/金丝雀部署)

写在前面:如有问题,以你为准, 目前24年应届生,各位大佬轻喷,部分资料与图片来自网络 内容较长,页面右上角目录方便跳转 ingress 介绍 架构 原理 官网资料:Ingress 控制器 | Kubernetes 我…

智能商品系统如何协同其他系统共享数据和优化供应链决策?

智能商品系统可以通过与其他系统(如ERP系统)进行数据集成和协同工作,以实现数据共享和优化供应链决策。具体而言,可以采取以下方法: 数据接口和集成:智能商品系统和ERP系统可以通过数据接口进行连接和数据交…

原码和补码之间的相互转化

写个笔记,防止遗忘。 补码是一种计算机中用于表示有符号整数的方式,它允许使用相同的二进制加法操作来处理有符号数的加法和减法,简化了计算机的设计。 补码转换为原码(从补码得到实际数值): 如果补码的…

apache共享目录文件配置

httpd配置文件路径 /etc/httpd/conf/httpd.conf 配置单个节点 httpd中原本有一个配置 <Directory "/var/www">AllowOverride None# Allow open access:Require all granted </Directory># Further relax access to the default document root: <D…

身为程序员,你很有必要了解一下提效工具“JNPF”

如果你有软件开发的需求&#xff0c;推荐你使用以Vue为技术栈的低代码JNPF。 这款低代码和市面上的其他低代码区别很大的&#xff0c;相较于轻流、简道云、轻宜搭、微搭、帆软、活字格等等&#xff0c;这类面向业务人群使用的低代码&#xff08;不需要研发人员操作的编写的&am…

英飞凌TC3xx之一起认识GTM(九)GTM相关知识简述及应用实例(CMU,CCM,TBU,MON)

英飞凌TC3xx之一起认识GTM(九)GTM相关知识简述及应用实例(CMU,CCM,TBU,MON) 1 时钟管理单元(CMU)2 集群配置模块(CCM)3 时基单元(TBU)4 监控单元(MON)5 总结由前文的各篇内容,开发者已经知道如何使用GTM的大部分功能,在这些功能中,都需要一个信息就是fGTM 的数据…

软件测试|MySQL SHOW DATABASES详解

简介 在MySQL中&#xff0c;SHOW DATABASES是一条SQL语句&#xff0c;用于显示当前MySQL服务器上所有可用的数据库。这条简单而常用的命令可以让你快速查看服务器上的数据库列表。本文将详细介绍SHOW DATABASES的使用方法以及相关注意事项。 语法 在 MySQL 中&#xff0c;可…

Redis 7.0性能大揭秘:如何优化缓存命中率?

Redis 7.0&#xff0c;这货不仅仅是一个简单的缓存工具&#xff0c;它更是一款高性能的数据结构服务器。现在&#xff0c;大家都知道缓存命中率对性能影响特别大&#xff0c;但怎么优化它呢&#xff1f; 本文&#xff0c;已收录于&#xff0c;我的技术网站 ddkk.com&#xff0…

vue3 img图片怎么渲染

在 Vue3 中加载图片&#xff08;img&#xff09;src地址时&#xff0c;出现无法加载问题。网上很多都建议使用 require 加载相对路径&#xff0c;如下&#xff1a; <img :src"require(../assets/img/icon.jpg)"/>但是按照这种方式加载又会报错如下&#xff1a;…

商城小程序(7.加入购物车)

目录 一、配置vuex二、创建购物车的store模块三、在商品详情页中使用store模块四、实现购加入购物车功能五、动态统计购物车中商品的总数量六、持久化存储购物车的商品七、优化商品详情页的total侦听器八、动态为tabBar页面设置数据徽标九、将设置tabBar徽标的代码抽离为mixins…

tcp/ip协议2实现的插图,数据结构6 (24 - 章)

(142) 142 二四1 TCP传输控制协议 tcpstat统计量与tcp 函数调用链 (143) 143 二四2 TCP传输控制协议 宏定义与常量值–上 (144) 144 二四3 TCP传输控制协议 宏定义与常量值–下 (145) 145 二四4 TCP传输控制协议 结构tcphdr,tcpiphdr (146) 146 二四5 TCP传输控制协议 结构 tcp…

05、Kafka ------ 各个功能的作用解释(主题和分区 详解,用命令行和图形界面创建主题和查看主题)

目录 CMAK 各个功能的作用解释&#xff08;主题&#xff09;★ 主题★ 分区★ 创建主题&#xff1a;★ 列出和查看主题 CMAK 各个功能的作用解释&#xff08;主题&#xff09; ★ 主题 Kafka 主题虽然也叫 topic&#xff0c;但它和 Pub-Sub 消息模型中 topic 主题及 AMQP 的 t…

考研个人经验总结【心理向】

客官你好 首先&#xff0c;不管你是以何种原因来到这篇博客&#xff0c;以下内容或多或少可能带给你一些启发。如果你还是大二or大三学生&#xff0c;有考研的打算&#xff0c;不妨提前了解一些考研必备的心理战术&#xff0c;有时候并不是你知识学得不好&#xff0c;而是思维…

SQL DML

# DML—添加数据 1.给指定字段添加数据 INSERT INTO表名(字段名1,字段名2,...)VALUES(值1&#xff0c;值2...); 2.给全部字段添加数据 INSERT INTO表名VALUES(值1&#xff0c;值2,...); 3.批量添加数据 INSERT INTO表名(字段名1,字段名2,...)VALUES(值1&#xff0c;值2..…

供应链安全-镜像 Trivy kubesec

开头语 写在前面&#xff1a;如有问题&#xff0c;以你为准&#xff0c; 目前24年应届生&#xff0c;各位大佬轻喷&#xff0c;部分资料与图片来自网络 内容较长&#xff0c;页面右上角目录方便跳转 Dockerfile 文件优化 减少镜像层&#xff1a;一次RUN指令形成新的一层&a…