node小記
Buffer緩衝區
通俗點來說就是一個暫時儲存使用者傳送的請求資訊,和伺服器未發現響應之前的響應資訊,內部已二進位制儲存但是以十六進位制顯示。
fs檔案系統(File System)
就是node通過引用fs模組對電腦裡面的檔案可以進行一系列增刪改的操作等。如果筆記有榮幸被網上的兄弟看到,那這裡把模組的引入講一下,就是 cosnt fs = require('fs')
,node引入檔案就是這樣require後面跟需要引入的模組名字,如果是引入自己建立的模組,那填寫的就是相對路徑,npm下載的模組也是隻要填名字就可以了。fs裡面的方法分為同步和非同步,同步會卡主程式的執行,等我這步執行完了才能執行後面,非同步就是程式先按順序執行下去,等我fs這步執行完了,再執行一個回撥函式
同步
const fs = require('fs')
//引入fs模組
const fa = fs.openSync('hello.txt','w')
//同步開啟hello.txt檔案,這裡寫相對路徑,第二個位置寫許可權
fs.writeSync(fa,'我giaoi1',20)
//同步寫入檔案,第一個是檔案標識,第二個是檔案內容,第三個是內容前幾個空格
fs.closeSync(fa)
//同步關閉檔案
非同步
const fs = require('fs')
//非同步步驟是一樣的但是每個api執行完都要有一個回撥函式,函式第一個引數都是錯誤,接著在回撥函式中進行下一步操作
fs.open('hello.txt','w',(err,fd)=>{
//這裡第二個引數返回的是檔案識別符號
if(!err){
fs.write(fd,'非同步寫入一些東西',(err)=>{
if(!err){
fs.close(fd,(err)=>{
if(!err){
console.log('檔案關閉成功');
}
})
}
})
}
})
簡單寫入
//非同步
const fs =require('fs')
fs.writeFile('hello.txt','簡單寫入',(err)=>{
if(!err){
console.log('寫入完成');
}
})
//同步
fs.writeFileSync('hello.txt','簡單寫入同步')
檔案寫入預設一般是直接覆蓋原有的內容,需要在引數最後改變開啟狀態
fs.writeFileSync('hello.txt','簡單寫入同步追加',{flag:'a'})
流式檔案寫入
可以分多次寫入檔案,而不用像傳統一樣一次性寫入所有
const fs = require('fs')
const w = fs.createWriteStream('hello.txt')
w.write('wogiao')
w.write('wogiao')
w.write('wogiao')
w.write('wogiao')
w.end()
簡單檔案讀取
只能讀取出buffer的形式是因為讀取的檔案樣式是多種多樣的,如果要檢視字串檔案的內容可以用toString的方法轉化為字串,非同步的方法是將資料返回到回撥函式的第二個引數中,同步則是以返回值的形式返回
const fs = require('fs')
fs.readFile('wife.jpg',(err,data)=>{
if(!err){
console.log(data);
fs.writeFile('hello.txt',data,(err)=>{
if(!err){
console.log('寫入圖片成功');
}
})
}
})
流式檔案讀取
這裡直接流式檔案讀取並且通過建立一條管子,一邊讀取資料一邊往另一個檔案寫入資料
const fs = require('fs')
const ws = fs.createWriteStream('hello.txt')
const rs = fs.createReadStream('wife.jpg')
rs.pipe(ws)
fs的其他方法
const bol = fs.existsSync(path)
//檢查一個檔案存不存在,非同步的方法已經廢除,因為檢視檔案本來就是一個很快的事情沒必要用非同步,返回一個Boolean
const state = fs.statSync(path)
//返回一個狀態資訊物件,裡面有檔案的大小,建立時間等
fs.stat(path,(err,state)=>{
})
//將狀態資訊物件返回到第二個引數中
//返回的物件還包含很多方法,例如:state.isFile() //是否是一個檔案
// state.isDirectory //是否是一個資料夾或者目錄
fs.unlink(path,callback)
fs.unlinkSync(path)
//直接刪除檔案
fs.readdir(path,(err,files)=>{})
//fiels是一個陣列,裡面是該目錄下的所有檔案
fs.readdirSync(path)
//讀取目錄的目錄結構
fs.truncate(path,length)
//擷取檔案,擷取該檔案前面固定length
fs.truncate(path,length)
fs.mkdir(path,callback)
fs.mkdirSync(path)
//建立一個資料夾
fs.rmdir(path,callback)
fs.rmdirSync(path)
//建立一個資料夾
fs.rename(oldpath,newpath,callback)
fs.renameSync(oldpath,newpath)
//重新命名檔案
fs.watchFile(path[,options],listener)
fs.watchFile(path[,options],(curr,prev)=>{
//接受兩個引數,一個是當前檔案狀態,一個是修改前檔案的狀態,這兩個引數都是stats物件,也有size,isFile()等
})
//lisener是一個回撥函式,等監聽的檔案發生變化的時候執行
//它其實是一個定時機制,每間隔一段時間就會去檢查檔案是否發生變化
//option裡面可以設定一個interval時間間隔,一般option都是一個物件
相關文章
- Node程式debug小記
- 使用node爬蟲做了一個vue小專案記錄使用筆記爬蟲Vue筆記
- node.js筆記Node.js筆記
- node知識點小結(一)
- 記ByteCTF中的Node題
- node link 踩坑記錄
- node fs學習筆記筆記
- Node.js EventEmitter 筆記Node.jsMIT筆記
- 記錄node記憶體瓶頸分析記憶體
- 前端知識點小結--node、express、mongodb前端ExpressMongoDB
- Node服務下的微信小程式微信小程式
- Blender Shader Node簡單記錄
- node學習筆記之39筆記
- node基礎學習筆記筆記
- Node中Buffer學習筆記筆記
- Node+GitLab實現小程式CI系統Gitlab
- 小馬的大前端之路——Node.js初探前端Node.js
- Node.js學習日記7Node.js
- node計算記憶體佔用記憶體
- Node - 記憶體管理和垃圾回收記憶體
- Node學習筆記 Mongodb 和 Mongoose筆記MongoDB
- Node.js學習筆記(一)Node.js筆記
- Node系列-爬蟲踩坑筆記爬蟲筆記
- Node.js學習筆記1Node.js筆記
- <node.js學習筆記(1)>Node.js筆記
- <node.js學習筆記(2)>Node.js筆記
- Node記憶體限制和垃圾回收記憶體
- node事件迴圈學習筆記事件筆記
- 筆記:Node.js Postgresql踩坑筆記Node.jsSQL
- Node除錯指南-記憶體篇除錯記憶體
- 深入淺出node讀書筆記筆記
- 延安小記
- 小記 Demo
- java小記-Java
- Warmup小記
- # self小記
- Cookie小記Cookie
- vue小記Vue