日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NodeJs(一)

發布時間:2024/7/5 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NodeJs(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

NodeJs簡介

  Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環境。node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。?

中文文檔:http://nodejs.cn/api/

環境變量

????當我們在命令行窗口打開一個文件,或調用一個程序時,系統會首先在當前目錄下尋找文件程序,如果找到了則直接打開。
如果沒有找到則會依次到環境變量path的路徑中尋找,直到找到為止,如果沒找到則報錯。

I/O(Input/Output)

????I/O操作指的是對磁盤的讀寫操作

Node基礎

????Node是一個對ES標準一個實現,Node也是一個JS引擎,通過Node可以使js代碼在服務器端執行
????Node是一款使用js編寫的web服務器,底層是C++編寫,node中js引擎使用的使用的是chrome的v8引擎
????Node的特點:
????????1、非阻塞、異步的I/O
????????2、事件和回調函數
????????3、單線程(主線程單線程,后臺I/O線程池)
????????4、跨平臺
????Node僅僅對ES標準進行了實現,所以在Node中不包含DOM和BOM
????Node中可以使用所有的內建對象
????????String、Number、Boolean、Math、Date、RegExp、Function、Object、Array
????而BOM和DOM都不能使用,但是可以使用console,也可以使用定時器(setTimeOut()、setInterval())
????Node可以在后臺來編寫服務器,Node編寫服務器都是單線程的服務器
????????-進程:進程就是一個一個的工作計劃
????????-線程:線程是計算機最小的運算單位
????傳統的服務器都是多線程的:每進來一個請求,就創建一個線程去處理請求
????Node的服務器是單線程:Node處理請求時是單線程,但是在后臺擁有一個I/O線程池

模塊化? ?

 ES5中沒有原生支持模塊化,我們只能通過script標簽引入js文件來實現模塊化

????在node中為了對模塊管理,引入了CommonJS規范
????模塊的引用:使用require()函數來引入一個模塊
????模塊的定義:在node中一個js文件就是一個模塊
????????默認情況下在js文件中編寫的內容,都是運行在一個獨立的函數中,外部的模塊無法訪問
????????導出變量和函數:
????????????-使用exports
????????????????exports.屬性=屬性值
????????????????exports.方法=函數
????????????-使用module.exports????????
????????????????module.exports.屬性 = 屬性值;
????????????????module.exports.方法 = 函數;
????????????????module.exports = {};
????模塊的標識:模塊的標識就是模塊的名字或者路徑
????????node中通過模塊的標識來尋找模塊的
????????對于核心模塊(npm中下載的模塊),直接使用模塊的名字對其進行引入
????????????var fs=require("fs")
????????對于自定義的文件模塊,需要通過文件的路徑來對模塊進行引入

??包(package)

????將多個模塊組合為一個完整的功能,就是一個包
????包結構
????????-bin:二進制的可執行文件,一般都是一些工具包這中才有
????????-lib:js文件
????????-doc:文檔
????????-test:測試代碼
????????package.json:包的描述文件,包含了包各種相關信息:name、version、dependencies、main、bin

npm(Node Package Manager Node的包管理器)

????通過npm可以對node中的包進行上傳、下載、搜索等操作。npm會在安裝完node以后自動安裝。
????npm的常用指令
????????npm -v:查看npm的版本
????????npm version:查看所有模塊的版本
????????npm init:初始化項目(創建package.json)
????????npm i/install 包名:安裝指定的包
????????npm i/install 包名 --save:安裝指定的包并添加依賴
????????npm i/install 包名 -g:全局安裝(一般是某些工具)
????????npm i/install:安裝當前項目所依賴的包
????????npm s/search:包名 搜索包????
????????npm r/remove:包名 刪除一個包

文件系統(File System)

?緩沖區

????????Buffer和數組的結構非常類似,Buffer是用來存儲二進制數據的
????????Buffer的方法
????????????-Buffer.from(字符串):將一個字符串中內容保存到一個Buffer中
????????????-buf.toString():將buffer轉換為一個字符串
????????????-Buffer.alloc(size):創建一個指定大小的buffre對象
????????????-Buffer.allocUnsafe(size):創建一個指定大小的buffer對象,可以包含敏感數據

fs模塊

????????在Node通過fs模塊來對系統中的文件進行操作,fs模塊是node中已經繼承好了,不需要在npm下載,直接引入即可。
????????引入fs:var fs =require("fs"),fs模塊中的大部分操作都提供了兩種方法,同步方法(帶sync)和異步方法。
????????寫入文件:1、同步寫入 2、異步寫入 3、簡單寫入 4、流式寫入
????????讀取文件:1、同步讀取 2、異步讀取 3、簡單讀取 4、流式讀取
????????方法:
????????-打開文件
????????????fs.open(path,flags[,model],callback)
????????????fs.openSync(path,flags[,model])
????????????注:flag為讀取文件的方式,r只讀,w可寫

????????-讀寫文件
????????????fs.write(fd, string[, position[, encoding]], callback)
????????????fs.writeSync(fd, string[, position[, encoding]])
????????????
????????????fs.read(fd, buffer, offset, length, position, callback)
????????????fs.readSync(fd, buffer, offset, length, position)
????????
????????-關閉文件
????????????fs.close(fd,callback)
????????????fs.closeSync(fd)
????????????
????????- 簡單文件讀取和寫入
????????????fs.writeFile(file, data[, options], callback)
????????????fs.writeFileSync(file, data[, options])

????????????fs.readFile(path[, options], callback)
????????????fs.readFileSync(path[, options])

????????- 流式文件讀取和寫入
????????????- 流式讀取和寫入適用于一些比較大的文件
????????????????fs.createWriteStream(path[, options])
????????????????fs.createReadStream(path[, options])

轉載于:https://www.cnblogs.com/hucheng1997/p/11152777.html

總結

以上是生活随笔為你收集整理的NodeJs(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。