在实作的过程中,原本想把这篇省略掉,但在往後的实作中,偶而会利用到这些模块与知识,放在这篇,之後文中若有提到的话,就可以大概知道这些是甚麽,在Node中扮演什麽地位,而这篇只是我的重点整理,所以可能没有叙述的这麽详细或是准确,请多多包涵!若有叙述错误的地方在请指教。
Buffer就是一个缓冲区
,当前端将数据流(Stream)发送到後端时,会被分割成好几等分
,Nodejs会有这个缓冲区用来储存这些被分割的数据,它可以控制Stream的流速。
当Stream传到後端的速度比程序读取的速度还来的快
时,还没读取或来不及读取的Stream,就会先暂存在Buffer
;
若Stream到後端的速度比程序读取慢
时,也会暂存在缓冲区等达到一定的量之後再给程序读取
。
通常用阵列来储存,在某些时候也可以限制缓冲区的大小。
Buffer是用来处理二进位的数据,是Node特别设置。Node有String之外还有Buffer这类的数据,是因为它在进行Web开发时常需要与前端数据通信,二进为数据是很常见的,所以Buffer处理完二进位的数据後,所表现出来的是十六进位的字串
。
//Buffer读取
var fs=require("fs");
fs.readFile("butterfly.txt",(err,result)=>
{
console.log(result);
});
执行结果:
就是文字由二进位又被Buffer转换成十六进位,其中应该也是因为二进位太难了,
读取时又臭又长的,改成十六进位是不是明了许多。
encodin
配置,会出现Buffer格式的字符串。encoding
或toStrin
转换成文字。//readFile异步读取
var fs=require("fs");
var data=fs.readFileSync("butterfly.txt",{encoding:"UTF-8"});
console.log(data);
执行结果:
与butterfly.txt内容是相符的!
若是没有设定encoding
,会输出Buffer的格式!! 所以可以透过tostring
作转换!
//readFile 异步读取/文字传换
var fs=require("fs");
var data=fs.readFileSync("butterfly.txt");
var data = data.toString('UTF-8',0,100);
console.log(data);
toString(encoding,start,end)
如此一来,也可以转换成文字!但当然会选择第一个直接设置encoding
更方便一点!
write()
、open()
、read()
前可以先调用stat方法,来判断文件状态。//stat判断文件是否存在
var fs=require("fs");
fs.stat("butterfly.txt",(err,result)=>
{ //假设不存在的档案为butter.txt
if(err)
{
console.log("error!!!");
console.log(err);
}
console.log(result);
});
当文件是不存在时(butter.txt),
执行结果:
当文件存在时,
执行结果:
首先要获取请求的URL、method之类的讯息,这些讯息都封装在require中。
get
、post
。index.html?name=Lear
。可以在Google中,按[右键]->[检查]->[Network]
,接着在网址处输入goole.com,按下[Enter]
的当下,就会出现以下画面:
在[Headers]中可以看到各类的请求与响应头和请求头。
通常GET请求是从後端服务器里获取数据。
而在[Response]中显示的就是HTML的原始码。
>>: Day11 - Gem-rqrcode 或 barby 产 QR Code
前言 我是汉汉老师,於某公立大学电机系、某公立电机研究所毕业的新鲜人。 自大一修了C++的课以後,就...
今天谈一个在商业视角的时间故事。 我的公司盛行加班(勿战),因此有些主管为了体恤加班的同仁,也方便把...
这次就要来练习上次学习的switch 这边我想了个题目来练习 那现在就开始练习程序码吧! 题目:利用...
首先我们介绍一下这个APP的功能。 介绍 这个APP主要会有的功能如下: 计算今天吃的东西类型 计算...
首先来认识常见的错误类型: EvalError- eval() 执行错误 RangeError - ...