javascript
Node.JS第二讲笔记
大家好,歡迎關注微信公眾號:雄雄的小課堂
package包
包結構
包其實就是一個壓縮文件,解壓之后還原為目錄,符合規范的目錄,應該包含如下文件:
package.json:描述文件
bin:可執行的二進制文件
lib:Js代碼
doc:文檔
test:測試文件
包描述文件package.json
1.包描述文件用于表達非代碼的相關信息,它是一個json格式的文件-package.json,位于包的根目錄下,是包的主要組成部分
2.包中的主要字段
name??description?version??keywords?maintainer?contributors?bugs?licenses?repositories?dependencies??homepage?os?cpu?engine?builtin?directoies?implements??scripts?author?bin?main?devDependenciesNPM(Node Package Manage)
介紹說明
1.CommonJs包規范是理論,NPM是一種實踐
2.對于Node而言,NPM幫助起完成了第三方模塊的發布、安裝和以來等,NPM就是管理下載一些東西的。
NPM的命令
1.npm -v:版本
2.npm search 包名:搜索模塊包
3.npm install 包名:安裝包名
4.npm install 包名 -g:全局模式安裝包(全局安裝的包一般都是工具,計算機的工具,比如編輯CSS,JS文件)
初始化
命令:npm init,后面直接回車即可,然后就會發現本地多了個package.json文件
安裝包
命令:npm install math,回車即可下載,下載完了之后多了個node_modules文件夾
在index.js中引入模塊
直接在index.js中寫如下代碼:
var?math?=?require("math"); console.log(math.add(1,1));在DOS直接執行:
node?index.js 執行結果為:2(1+1的和)刪除包名
命令:npm remove 包名
package-lock.json文件
通過該文件綁定依賴
安裝并保存依賴
命令:
npm?install?math?--save執行完之后在package.json中會多了一個鍵dependencies,依賴
CNPM
中國的npm,阿里鏡像,需要安裝阿里鏡像,命令如下:
npm?install?-g?cnpm?--registry=https://registry.npm.taobao.org####總結
通過NPM下載的包都放到node_modules文件夾中
通過NPM下載的包直接通過包名引入
如果刪除了下載的包,執行引入代碼時,Node會從文件上一級去尋找,一直找到相應的包,否則報錯
Buffer緩沖區
1.從結構上看Buffer非常像一個數組,他的元素為16進制2位數,傳統的數組并不能保存二進制數據,而Buffer就是專門保存二進制的數據
2.實際上一個元素就表示內存中的一個字節
3.實際上Buffer中的內存不是通過JavaScript分配的,而是在底層C++申請的
4.我們可以通過Buffer來創建內存中的空間
使用Buffer
1.不需要引入任何的模塊,直接使用,就像內置對象一樣。
eg:
var?str?=?"hello"; var?buf?=?Buffer.from(str); console.log(buf);運行結果:
<Buffer?48?65?6c?6c?6f> var?str?=?"hello"; console.log(buf.length);??//當前字符占內存的大小??結果為5 console.log(str.length);??//字符串的長度?結果為5var?str?=?"你好"; console.log(buf.length);??//字符串的長度?結果為6,一個漢字占3byte創建指定大小的Buffer:
var?buf?=?new?Buffer(1024);???//1024字節,也就是1kb這種方式已經廢棄了.
用下面的這一種:
var?buf?=?Buffer.alloc(1024);另一種方式
var?buf1?=?Buffer.allocUnsafe(10); console.log(buf1);運行結果:
<Buffer?b0?3d?bb?97?00?02?00?00?b0?44>區別:
alloc:相當于自習課上,上完之后人走了之后書也拿走了
allocUnsafe:相當于自習課上,上完之后人走了之后書沒有拿走,有殘留
API文檔地址
http://nodejs.cn/api/ ?中文文檔地址
存放數據
var?buf?=?Buffer.alloc(10); buf[0]?=?0xaa; buf[1]?=?12; buf[2]?=?255; console.log(buf);運行結果:
<Buffer?aa?0c?ff?00?00?00?00?00?00?00>如果寫buf[10]的話,即使越界了也不會報錯,但是也不會顯示出來
文件系統
簡單來說文件系統就是通過node來操作系統中的文件
同步文件的寫入
1.打開文件
//fs.openSync(path,flags{,model})??語法 //引入 var?fs?=?require("fs"); //打開文件 var?fd?=?fs.openSync("hello.txt","w"); //console.log(fd);?//返回3,證明打開成功fs.writeSync(fd,"今天周五",3); fs.close(fd);執行之后會自動在當前文件夾下面創建hello.txt文件,里面添加內容:今天周五
fs.writeSync(fd,"今天周五",3); ?3表示前面的空格。
2.向文件流中寫入內容
3.保存或者關閉文件
異步文件的寫入
實例:
var?fs?=?require("fs"); fs.open("info.txt","w",function(err,fd){console.log(err);if(!err){fs.write(fd,"今天好開心",function(err,fd){if(!err){console.log("寫入成功");fs.close(fd);}else{console.log("寫入失敗");fs.close(fd);}});}else{console.log(fd);} });總結
以上是生活随笔為你收集整理的Node.JS第二讲笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑开机显示器显示无信号怎么办电脑开机后
- 下一篇: 【最全最详细】publiccmsCSS和