国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【前端】尚硅谷Node.js零基礎(chǔ)視頻教程筆記

這篇具有很好參考價值的文章主要介紹了【前端】尚硅谷Node.js零基礎(chǔ)視頻教程筆記。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。


【前端目錄貼】
參考視頻: 尚硅谷Node.js零基礎(chǔ)視頻教程,nodejs新手到高手

1.基礎(chǔ)

1.1. 基礎(chǔ)命令

  • node -v 查看版本號
  • node hello.js 運(yùn)行js文件

1.2. 注意事項

Node.js中不能使用BOMDOM的API

console.log('hello world');
console.log(window);//報錯
console.log(document);//報錯

說明:瀏覽器中的javascript語法包括如下內(nèi)容組成部分
【前端】尚硅谷Node.js零基礎(chǔ)視頻教程筆記,前端,node.js,筆記
node.js語法的組成部分
【前端】尚硅谷Node.js零基礎(chǔ)視頻教程筆記,前端,node.js,筆記

2. Buffer(緩沖器)介紹與創(chuàng)建

2.1 概念

  1. Buffer 是一個類似于數(shù)組的 對象 ,用于表示固定長度的字節(jié)序列
  2. Buffer 本質(zhì)是一段內(nèi)存空間,專門用來處理 二進(jìn)制數(shù)據(jù)

【前端】尚硅谷Node.js零基礎(chǔ)視頻教程筆記,前端,node.js,筆記

2.2 特點(diǎn)

  1. Buffer 大小固定且無法調(diào)整
  2. Buffer 性能較好,可以直接對計算機(jī)內(nèi)存進(jìn)行操作
  3. 每個元素的大小為 1 字節(jié)(byte)

【前端】尚硅谷Node.js零基礎(chǔ)視頻教程筆記,前端,node.js,筆記

2.3 使用

  • 創(chuàng)建 Buffer

Node.js 中創(chuàng)建 Buffer 的方式主要如下幾種

  1. Buffer.alloc
  2. Buffer.allocUnsafe
  3. Buffer.from
// 創(chuàng)建了一個長度為 10 字節(jié)的 Buffer,相當(dāng)于申請了 10 字節(jié)的內(nèi)存空間,每個字節(jié)的值為 0
let buf_1 = Buffer.alloc(10) //=>結(jié)果為<Buffer 00 00 00 00 00 00 00 00 00 00>

//創(chuàng)建了一個長度為 10 字節(jié)的 Buffer,buffer 中可能存在舊的數(shù)據(jù), 可能會影響執(zhí)行結(jié)果,所以叫unsafe
let buf_2 = Buffer.allocUnsafe(10);

//通過字符串創(chuàng)建 Buffer
let buf_3 = Buffer.from('hello');
//通過數(shù)組創(chuàng)建 Buffer
let buf_4 = Buffer.from([105, 108, 111, 118, 101, 121, 111, 117]);
  • Buffer 與字符串的轉(zhuǎn)化

toString 方法將 Buffer 轉(zhuǎn)為字符串 (toString 默認(rèn)是按照 utf-8 編碼方式進(jìn)行轉(zhuǎn)換的。)

let buf_4 = Buffer.from([105, 108, 111, 118, 101, 121, 111, 117]);
console.log(buf_4.toString())
  • Buffer 的讀寫

Buffer 可以直接通過 [] 的方式對數(shù)據(jù)進(jìn)行處理。
注意:
如果修改的數(shù)值超過 255 ,則超過 8 位數(shù)據(jù)會被舍棄
一個 utf-8 的中文字符 一般 占 3 個字節(jié)

//讀取
console.log(buf_3[1]);
//修改
buf_3[1] = 97;
//查看字符串結(jié)果
console.log(buf_3.toString());

3. fs模塊(file system)

fs 全稱為 file system ,稱之為 文件系統(tǒng) ,是 Node.js 中的 內(nèi)置模塊 ,可以對計算機(jī)中的磁盤進(jìn)行操
作。

3.1 文件寫入

文件寫入就是將 數(shù)據(jù) 保存到 文件 中,我們可以使用如下幾個方法來實(shí)現(xiàn)該效果

方法 說明
writeFile 異步寫入
writeFileSync 同步寫入
appendFile / appendFileSync 追加寫入
createWriteStream 流式寫入
  • writeFile 異步寫入

語法: fs.writeFile(file, data[, options], callback)
參數(shù)說明:

  • file 文件名
  • data 待寫入的數(shù)據(jù)
  • options 選項設(shè)置 (可選)
  • callback 寫入回調(diào)

返回值: undefined

// require 是 Node.js 環(huán)境中的'全局'變量,用來導(dǎo)入模塊
var fs = require('fs');
// 參數(shù)說明:
// file 文件名
// data 待寫入的數(shù)據(jù)
// options 選項設(shè)置 (可選)
// callback 寫入回調(diào)
fs.writeFile('./fileBak/aa.txt','三人行',err => {//不存在,則創(chuàng)建
    //如果寫入失敗,則調(diào)用回調(diào)函數(shù),會傳入錯誤對象,如寫入成功,會傳入null
    if (err) {
        console.log(err);
        return;
    }
    console.log('寫入成功');
});
  • writeFileSync同步寫入

語法: fs.writeFileSync(file, data[, options])
參數(shù)與 fs.writeFile 大體一致,只是沒有 callback 參數(shù)
返回值: undefined

// require 是 Node.js 環(huán)境中的'全局'變量,用來導(dǎo)入模塊
var fs = require('fs');
// 參數(shù)說明:
// file 文件名
// data 待寫入的數(shù)據(jù)
// options 選項設(shè)置 (可選)
fs.writeFileSync('./fileBak/bb.txt','三人行');
console.log('寫入完成')

Node.js 中的磁盤操作是由其他 線程 完成的,結(jié)果的處理有兩種模式:
同步處理 JavaScript 主線程 會等待 其他線程的執(zhí)行結(jié)果,然后再繼續(xù)執(zhí)行主線程的代碼,
效率較低
異步處理 JavaScript 主線程 不會等待 其他線程的執(zhí)行結(jié)果,直接執(zhí)行后續(xù)的主線程代碼,
效率較好

  • appendFile / appendFileSync追加寫入

appendFile 作用是在文件尾部追加內(nèi)容,appendFile 語法與writeFile語法完全相同
語法:
fs.appendFile(file, data[, options], callback)
fs.appendFileSync(file, data[, options])
返回值: 二者都為 undefined

// require 是 Node.js 環(huán)境中的'全局'變量,用來導(dǎo)入模塊
// require 是 Node.js 環(huán)境中的'全局'變量,用來導(dǎo)入模塊
var fs = require('fs');
// 參數(shù)說明:
// file 文件名
// data 待寫入的數(shù)據(jù)
// options 選項設(shè)置 (可選)
// callback 寫入回調(diào)
for (let i = 0; i < 10; i++) {
    // fs.appendFile('./fileBak/aa.txt','三人行',err => {//不存在,則創(chuàng)建,異步追加
    fs.appendFileSync('./fileBak/aa.txt','三人行');
}
console.log(1)
  • createWriteStream流式寫入

語法: fs.createWriteStream(path[, options])
參數(shù)說明:

  • path 文件路徑
  • options 選項配置( 可選
  • 返回值: Object
// require 是 Node.js 環(huán)境中的'全局'變量,用來導(dǎo)入模塊
var fs = require('fs');
// 參數(shù)說明:
// file 文件名
// options 選項設(shè)置 (可選)
var ws = fs.createWriteStream('./fileBak/cc.txt');
ws.write('11');
ws.write('22');
ws.end();
console.log(1)

程序打開一個文件是需要消耗資源的 ,流式寫入可以減少打開關(guān)閉文件的次數(shù)。
流式寫入方式適用于 大文件寫入或者頻繁寫入 的場景, writeFile 適合于 寫入頻率較低的場景

3.2 文件讀取

文件讀取顧名思義,就是通過程序從文件中取出其中的數(shù)據(jù),我們可以使用如下幾種方式

方法 說明
readFile 異步讀取
readFileSync 同步讀取
createReadStream 流式讀取
  • readFile 異步讀取

語法: fs.readFile(path[, options], callback)
參數(shù)說明:

  • path 文件路徑
  • options 選項配置
  • callback 回調(diào)函數(shù)
  • 返回值:undefined
var fs = require('fs');
fs.readFile('./fileBak/aa.txt',(err,data) => {
    if (err) {
        throw err
    }
    console.log(data);
})

fs.readFile('./fileBak/aa.txt','utf-8',(err,data) => {
    if (err) {
        throw err
    }
    console.log(data);
})
  • readFileSync 同步讀取

語法: fs.readFileSync(path[, options])
參數(shù)說明:
path 文件路徑
options 選項配置
返回值: string | Buffer

var fs = require('fs');
var data1 = fs.readFileSync('./fileBak/aa.txt');
console.log(data1)
var data2 = fs.readFileSync('./fileBak/aa.txt','utf-8');
console.log(data2)
  • createReadStream 流式讀取

語法: fs.createReadStream(path[, options])
參數(shù)說明:

  • path 文件路徑
  • options 選項配置( 可選
  • 返回值: Object
var fs = require('fs');
var readStream = fs.createReadStream('./fileBak/aa.txt','utf-8');
readStream.on('data',data3=>{
    console.log(data3)
    console.log(data3.length)
});
//讀取完畢后,執(zhí)行end回調(diào)
readStream.on('end',()=>{
    console.log('讀取完后');
})

3.3 文件移動與重命名

在 Node.js 中,我們可以使用 rename 或 renameSync` 來移動或重命名 文件或文件夾
語法:

  • fs.rename(oldPath, newPath, callback)
  • fs.renameSync(oldPath, newPath)

參數(shù)說明:

  • oldPath 文件當(dāng)前的路徑
  • newPath 文件新的路徑
  • callback 操作后的回調(diào)(同步)
var fs = require('fs');
fs.rename('./fileBak/aa.txt','./fileBak/aa2.txt',err => {
    if(err) throw err;
    console.log('移動完成');
});
var fs = require('fs');
fs.renameSync('./fileBak/aa2.txt','./fileBak/aa.txt');

3.4 文件刪除

在 Node.js 中,我們可以使用 unlink 或 unlinkSync 來刪除文件
語法:

  • fs.unlink(path, callback)
  • fs.unlinkSync(path)

參數(shù)說明:

  • path 文件路徑
  • callback 操作后的回調(diào)
var fs = require('fs');
fs.unlink('./fileBak/aa.txt',err => {
    if(err) throw err;
    console.log('刪除完成');
});
var fs = require('fs');
fs.unlinkSync('./fileBak/aa.txt');

3.5 文件夾操作

借助 Node.js 的能力,我們可以對文件夾進(jìn)行 創(chuàng)建 、 讀取 、 刪除 等操作

方法 說明
mkdir / mkdirSync 創(chuàng)建文件夾
readdir / readdirSync 讀取文件夾
rmdir / rmdirSync 刪除文件夾
  • mkdir / mkdirSync 創(chuàng)建文件夾

在 Node.js 中,我們可以使用 mkdirmkdirSync 來創(chuàng)建文件夾
語法:

  • fs.mkdir(path[, options], callback)
  • fs.mkdirSync(path[, options])

參數(shù)說明:

  • path 文件夾路徑
  • options 選項配置( 可選 )
  • callback 操作后的回調(diào)
var fs = require('fs');
fs.mkdir('./fileBak/cc',err => {//如果存在會報錯
    if(err) throw err;
    console.log('創(chuàng)建成功');
})
var fs = require('fs');
fs.mkdirSync('./fileBak/bbD');
var fs = require('fs');
//異步遞歸創(chuàng)建文件夾
fs.mkdir('./fileBak/1/2/3',{recursive:true},err => {
    if (err) {
        throw err;
    }
    console.log('同步遞歸創(chuàng)建文件夾');
});
var fs = require('fs');
//同步遞歸創(chuàng)建文件夾
fs.mkdirSync('./fileBak/1/2/3',{recursive:true});
  • readdir / mkdirSync 讀取文件夾

在 Node.js 中,我們可以使用 readdir 或 readdirSync 來讀取文件夾
語法:

  • fs.readdir(path[, options], callback)
  • fs.readdirSync(path[, options])

參數(shù)說明:

  • path 文件夾路徑
  • options 選項配置( 可選 )
  • callback 操作后的回調(diào)
var fs = require('fs');
fs.readdir('./fileBak/1',(err,data) => {
    if (err) {
        throw err;
    }
    console.log(data);
});
var fs = require('fs');
var data = fs.readdirSync('./fileBak/1');
console.log(data)
  • rmdir / mkdirSync 刪除文件夾

在 Node.js 中,我們可以使用 rmdir 或 rmdirSync 來刪除文件夾
語法:

  • fs.rmdir(path[, options], callback)
  • fs.rmdirSync(path[, options])

參數(shù)說明:

  • path 文件夾路徑
  • options 選項配置( 可選 )
  • callback 操作后的回調(diào)
var fs = require('fs');
//異步刪除文件夾
// fs.rmdir('./fileBak/cc', err => {
//     if(err) throw err;
//     console.log('刪除成功');
// });

//異步遞歸刪除文件夾
fs.rmdir('./fileBak/1', {recursive: true}, err => {
    if(err) {
        console.log(err);
    }
    console.log('遞歸刪除')
});

3.6 查看資源狀態(tài)

在 Node.js 中,我們可以使用 stat 或 statSync 來查看資源的詳細(xì)信息
語法:

  • fs.stat(path[, options], callback)
  • fs.statSync(path[, options])

參數(shù)說明:

  • path 文件夾路徑
  • options 選項配置( 可選 )
  • callback 操作后的回調(diào)
var fs = require('fs');
//異步獲取狀態(tài)
// fs.stat('./fileBak/aa.txt', (err, data) => {
//     if(err) throw err;
//     console.log(data);
// });


//同步獲取狀態(tài)
let data = fs.statSync('./fileBak/aa.txt');
console.log(data)

3.7 相對路徑問題

fs 模塊對資源進(jìn)行操作時,路徑的寫法有兩種:

  • 相對路徑
    * ./座右銘.txt 當(dāng)前目錄下的座右銘.txt
    * 座右銘.txt 等效于上面的寫法
    * ../座右銘.txt 當(dāng)前目錄的上一級目錄中的座右銘.txt
  • 絕對路徑
    * D:/Program Files windows 系統(tǒng)下的絕對路徑
    * /usr/bin Linux 系統(tǒng)下的絕對路徑

相對路徑中所謂的 當(dāng)前目錄 ,指的是 命令行的工作目錄 ,而并非是文件的所在目錄
所以當(dāng)命令行的工作目錄與文件所在目錄不一致時,會出現(xiàn)一些 BUG

3.8 __dirname

__dirnamerequire 類似,都是 Node.js 環(huán)境中的’全局’變量,__dirname 保存著 當(dāng)前文件所在目錄的絕對路徑 ,可以使用 __dirname 與文件名拼接成絕對路徑
let data = fs.readFileSync(__dirname + '/data.txt');文章來源地址http://www.zghlxwxcb.cn/news/detail-823648.html

3.9 練習(xí)復(fù)制文件腳本

var fs = require('fs');
fs.readFile('./fileBak/1.png', (err, data) => {
    if (err) {
        throw  err;
        return;
    }
    console.log('開始讀取....')

    fs.writeFile('./fileBak/2.png', data, err => {
        if (err) {
            throw  err;
            return;
        }
        console.log('開始導(dǎo)出...');
        console.log('結(jié)束導(dǎo)出...');
    })


    console.log('結(jié)束讀取....')
});
// fs.writeFile('./fileBak/2.png', 'f', err => {
//     if (err) {
//         throw  err;
//         return;
//     }
//     console.log('開始導(dǎo)出...');
//     console.log('結(jié)束導(dǎo)出...');
// })

到了這里,關(guān)于【前端】尚硅谷Node.js零基礎(chǔ)視頻教程筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 尚硅谷最新Node.js 學(xué)習(xí)筆記(一)

    尚硅谷最新Node.js 學(xué)習(xí)筆記(一)

    目錄 一、Nodejs入門 1.1、為什么要學(xué)習(xí)Nodejs? 1.2、Nodejs是什么? 1.3、Nodejs的作用 1.4、Nodejs安裝 1.5、Nodejs初體驗 1.6、編碼注意事項 二、Buffer(緩沖器) 2.1、概念 2.2、特點(diǎn) 2.3、使用 創(chuàng)建Buffer Buffer與字符串的轉(zhuǎn)化 Buffer的讀寫 三、fs模塊 3.1、文件寫入 異步寫入 同步寫入 app

    2024年02月19日
    瀏覽(18)
  • 前端使用node.js連接sql.server數(shù)據(jù)庫教程

    前端使用node.js連接sql.server數(shù)據(jù)庫教程

    最近項目中要用到node寫接口然后連接公司現(xiàn)有的sql.server數(shù)據(jù)庫,再把執(zhí)行結(jié)果返回給前端(還是我),因為之前一直做前端這塊,后端這方面不是很懂,花了很長的時間終于研究出來了(還是太菜了,走了很多彎路),所以寫個博客,一是復(fù)習(xí)鞏固,二是給其他有需要的小伙伴一個參考,盡量

    2024年02月11日
    瀏覽(27)
  • 前端筆記10——Win7下node.js和npm版本兼容性問題解決。

    前端筆記10——Win7下node.js和npm版本兼容性問題解決。

    新版本node.js不支持WIN7。 Win7的電腦只能支持到Node v13.14.0。 可能之前裝了新版本的node,刪了重裝后,導(dǎo)致運(yùn)行npm命令老是提醒信息,說是不支持node版本。 npm does not support Node.js v13.14.0 可是顯示版本正常 解決方法: 卸載node之后,在把npm和npm cache兩個文件夾刪掉。 刪干凈后再

    2024年02月15日
    瀏覽(40)
  • 【熱門前端【vue框架】】——vue框架和node.js的下載和安裝保姆式教程

    【熱門前端【vue框架】】——vue框架和node.js的下載和安裝保姆式教程

    ?????個人主頁 :@程序員-曼億點(diǎn) ????? hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 曼億點(diǎn) 原創(chuàng) ????? 收錄于專欄 :vue框架開發(fā) ??Vue.js 是一款流行的 JavaScript 前端框架,它以其簡單、靈活和高效的特性,成為了構(gòu)建現(xiàn)代化 Web 應(yīng)用程序的首選工具

    2024年04月27日
    瀏覽(28)
  • 尚硅谷03:前端開發(fā)之ES | Vue_es6 Axios Node Npm

    尚硅谷03:前端開發(fā)之ES | Vue_es6 Axios Node Npm

    目錄 內(nèi)容介紹 統(tǒng)一異常處理 統(tǒng)一日志處理 前端介紹、工具使用 ES6入門 Vue入門 Vue語法 Vue語法高級 內(nèi)容介紹 1、統(tǒng)一異常處理 2、統(tǒng)一日志處理(了解) 3、前端介紹 4、ES6 5、VUE入門、基本語法 6、VUE高級語法 7、axios(重點(diǎn)) 8、node 9、npm(重點(diǎn)) 統(tǒng)一異常處理 創(chuàng)建異常 實(shí)

    2024年02月15日
    瀏覽(54)
  • 【Node.JS】初入前端,學(xué)習(xí)node.js基本操作

    【Node.JS】初入前端,學(xué)習(xí)node.js基本操作

    NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,常見的使用場景有以下幾種: npm可以分為全局安裝和本地安裝 Node所有API都支持回調(diào)函數(shù),回調(diào)函數(shù)一般作為API的最后一個參數(shù)出現(xiàn) 阻塞代碼實(shí)例 非阻塞代碼示例 語法分析 具體示例 事件監(jiān)聽器就是

    2023年04月25日
    瀏覽(27)
  • 前端node.js入門

    前端node.js入門

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動力,如果看完對你有幫助,請留下您的足跡) 目錄 Node.js 入門? 什么是 Node.js? 什么是前端工程化? ? Node.js 為何能執(zhí)行 JS?? fs 模塊 - 讀寫文件? path 模塊 - 路徑處理 URL 中的端口號? 常見的服務(wù)程序? Node.js 模塊化 什

    2024年02月17日
    瀏覽(46)
  • 【前端】尚硅谷Webpack教程筆記

    參考視頻 :尚硅谷Webpack5入門到原理 課件地址 【前端目錄貼】 Webpack 是一個靜態(tài)資源打包工具。 它會以一個或多個文件作為打包的入口,將我們整個項目所有文件編譯組合成一個或多個文件輸出出去。 輸出的文件就是編譯好的文件,就可以在瀏覽器段運(yùn)行了。 我們將 Webpa

    2024年03月10日
    瀏覽(18)
  • Node 調(diào)試?yán)?,前端、Node 開發(fā)必備 - VSCode JS Debug Terminal

    經(jīng)??吹接型瑢W(xué)抱怨 Node 調(diào)試麻煩或者是搞不清怎么調(diào)試各種腳本、 Jest 、 Webpack 等等,而偶爾看到的調(diào)試相關(guān)的文章又全都是在寫 inspect 、 launch.json 這些方案,其實(shí)有一定學(xué)習(xí)成本。 而其實(shí)在 VSCode 中早已內(nèi)置了相當(dāng)無腦的 Debug 方式,就是 JavaScript Debug Terminal ,利用它我

    2024年02月05日
    瀏覽(25)
  • 【Node.js 安裝】Node.js安裝與使用教程

    【Node.js 安裝】Node.js安裝與使用教程

    先說結(jié)論,Node.js 它是一套 JavaScript 運(yùn)行環(huán)境,用來支持 JavaScript 代碼的執(zhí)行 JavaScript 誕生于 1995 年,幾乎是和互聯(lián)網(wǎng)同時出現(xiàn);Node.js 誕生于 2009 年,比 JavaScript 晚了 15 年左右。 在 Node.js 之前,JavaScript 只能運(yùn)行在瀏覽器中,作為網(wǎng)頁腳本使用,為網(wǎng)頁添加一些特效,或者

    2024年02月16日
    瀏覽(54)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包