欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:node.js

柚子快報激活碼778899分享:node.js

http://yzkb.51969.com/

Node.js的特性

(1) Nodejs語法完全是js語法,只要你懂js基礎(chǔ)就可以學會Nodejs后端開發(fā)。

(2) Node.js超強的高并發(fā)能力,能夠?qū)崿F(xiàn)高性能服務(wù)器。

(3) 開發(fā)周期短、開發(fā)成本低、學習成本也低

2. 瀏覽器和Node.js環(huán)境對比

在Chrome瀏覽器環(huán)境中,V8引擎用于解析JS代碼,而Blink引擎是瀏覽器的排版引擎,用于處理網(wǎng)頁的html、css和DOM操作。

而Node環(huán)境中,只有V8引擎,用于處理JS代碼,所以Node.js中,訪問DOM和BOM是無法實現(xiàn)的。但Node.js因為有l(wèi)ibuv中間層加持,能夠?qū)崿F(xiàn)瀏覽器所不能實現(xiàn)的一些功能。

Node.js 可以解析JS代碼(沒有瀏覽器安全級別的限制)提供很多系統(tǒng)級別的API

CommonJS規(guī)范

在node.js環(huán)境中,默認支持模塊系統(tǒng),該模塊系統(tǒng)遵循CommonJs規(guī)范。

一個 JavaScript 文件就是一個模塊,在模塊文件中定義的變量和函數(shù)默認只能在模塊文件內(nèi)部使用,如果需要在其他文件中使用,必須顯式聲明將其進行導出。

CommonJS模塊規(guī)范主要分為模塊導出(也叫模塊定義)、模塊引用兩個部分。

模塊導出(module.exports或exports)

CommonJS中定義模塊的規(guī)定: 我們把公共功能抽離成一個單獨的js文件作為一個模塊。默認情況下,里面的方法和屬性是外面無法訪問的。如果想要讓外面能夠訪問到里面的屬性和方法,就必須要通過 module.exports 或exports暴露屬性和方法。

在每一個模塊文件中,都會存在一個 module 對象,即模塊對象。在模塊對象中保存了和當前模塊相關(guān)信息。?

在模塊對象中有一個屬性 exports,它的值是一個對象,模塊內(nèi)部需要被導出的成員都應(yīng)該存儲在到這個對象中。

可以用module.exports給test.js模塊系統(tǒng)添加屬性:

或者用exports給test.js模塊系統(tǒng)添加屬性:?

或者用module.exports = { }把屬性組合成一個對象后導出:?

模塊導入(require) 在其他文件中通過 require 方法引入模塊,require 方法的返回值就是對應(yīng)模塊的 module.exports 對象。在導入模塊時,模塊文件后綴 .js 可以省略,文件路徑不可省略。

(1) require 方法屬于同步導入模塊,模塊導入后可以立即使用。 (2) 導入其他模塊時,建議使用 const 關(guān)鍵字聲明,防止模塊被重置。 我們創(chuàng)建一個require.js文件,里面導入上面的test.js:

會發(fā)現(xiàn)打印的第二個module的children屬性會多一些信息:?

2. npm包管理工具的用法詳解

npm介紹:npm是世界上最大的開放源代碼的生態(tài)系統(tǒng),我們可以通過npm下載各種包。npm是隨同Node.js一起安裝的包管理工具,能解決Node.js代碼部署上的很多問題。

常見的使用場景有以下幾種 (1) 允許用戶從NPM服務(wù)器下載別人編寫的第三方包到本地使用。 (2) 允許用戶從NPM服務(wù)器下載并安裝別人編寫的命令行程序到本地使用。 (3) 允許用戶將自己編寫的包或命令行程序上傳到NPM服務(wù)器供別人使用。

?

npm常用命令 初始化項目:

npm init --yes

復(fù)制

使用 npm 命令安裝模塊:

npm install 包名@版本號

復(fù)制

全局安裝與本地安裝:

npm install 包名 # 本地安裝

npm install 包名 -g # 全局安裝

復(fù)制

查看所有全局安裝的模塊:

npm list -g

復(fù)制

卸載模塊:

npm uninstall 包名

復(fù)制

更新模塊:

npm update 包名

復(fù)制

package.json 和 package-lock.json 區(qū)別

(1) package.json 是在運行 “ npm init ”時生成的,主要記錄項目依賴,主要有以下結(jié)構(gòu):

name:項目名,也就是在使用npm init 初始化時取的名字. main:入口文件,一般都是 index.js description:描述信息,有助于搜索。 version:版本號。 keywords:關(guān)鍵字,有助于在人們使用 npm search搜索時發(fā)現(xiàn)你的項目。 scripts:支持的腳本,默認是一個空的 test。 license :默認是 MIT。 dependencies:指定了項目運行時(生產(chǎn)環(huán)境)所依賴的模塊。 devDependencies:指定項目開發(fā)時所需要的模塊,也就是在項目開發(fā)時才用得上,一旦項目打包上線了,就將移除這里的第三方模塊。

(2) package-lock.json 是在運行 “npm install” 時生成的一個文件,用于記錄當前狀態(tài)下項目中實際安裝的各個 package 的版本號、模塊下載地址、及這個模塊又依賴了哪些依賴。

為什么有了package.json,還需要 package-lock.json 文件呢?

當項目中已有 package-lock.json 文件,在安裝項目依賴時,將以該文件為主進行解析安裝指定版本依賴包,而不是使用 package.json 來解析和安裝模塊。 因為 package 只是指定的版本不夠具體,而package-lock 為每個模塊及其每個依賴項指定了安裝的版本,位置和完整性哈希,所以它每次創(chuàng)建的安裝都是相同的。 無論你使用什么設(shè)備,或者將來安裝它都無關(guān)緊要,每次都應(yīng)該給你相同的結(jié)果。

npm install安裝模塊時的一些選項

使用npm install安裝依賴時,可以使用--save和--save-dev。

使用--save安裝的依賴,安裝的包會被寫到package的dependencies屬性里面去。dependencies 是運行時依賴(生產(chǎn)環(huán)境),可以簡化為參數(shù) -S。

而使用--save-dev 則添加到 package.json 文件 devDependencies 鍵下,devDependencies 是開發(fā)時的依賴。即 devDependencies 下列出的模塊,是開發(fā)時用的 ,生產(chǎn)環(huán)境會移除,可以簡化為參數(shù) -D。

版本號的命名規(guī)則

在 Node.js 中所有的版本號都有3個數(shù)字:x.y.z。 第一個數(shù)字是主版本。第二個數(shù)字是次版本。第三個數(shù)字是補丁版本。

^:只會執(zhí)行不更改最左邊非零數(shù)字的更新。 如果寫入的是 ^0.13.0,則當運行 npm update 時,可以更新到 0.13.1、0.13.2 等,但不能更新到 0.14.0 或更高版本。 如果寫入的是 ^1.13.0,則當運行 npm update 時,可以更新到 1.13.1、1.14.0 等,但不能更新到 2.0.0 或更高版本。 ~:如果寫入的是 ?0.13.0,則當運行 npm update 時,會更新到補丁版本:即 0.13.1 可以,但 0.14.0 不可以。 >:接受高于指定版本的任何版本。 >=:接受等于或高于指定版本的任何版本。 <=:接受等于或低于指定版本的任何版本。 <:接受低于指定版本的任何版本。 =:接受確切的版本。 -:接受一定范圍的版本。例如:2.1.0 - 2.6.2。 ||:組合集合。例如 < 2.1 || > 2.6。

三.Node.js的常用內(nèi)置模塊

下面開始總結(jié)Node.js的內(nèi)置模塊了,如果你是入門學習的話,推薦按照本文順序來學,學習思路會更清晰。如果你只是要查閱相關(guān)模塊的用法,可以從目錄索引導航到那一個模塊。

1. http模塊

http模塊是 Node.js 網(wǎng)絡(luò)的關(guān)鍵模塊。可以使用以下代碼引入:

const http = require('http')

復(fù)制

該模塊提供了一些屬性、方法、以及類。我們要學習的就是一些常用的屬性、方法、以及類的使用。

常用方法:

(1) http.createServer() :用于返回 http.Server 類的新實例。 用法:

const server = http.createServer((req, res) => {

//使用此回調(diào)處理每個單獨的請求。

})

復(fù)制

(2) http.request() :用于發(fā)送 HTTP 請求到服務(wù)器,并創(chuàng)建 http.ClientRequest 類的實例。

(3) http.get() :類似于 http.request(),但會自動地設(shè)置 HTTP 方法為 GET,并自動地調(diào)用 req.end()。

常用屬性:

(1) http.METHODS :此屬性列出了所有支持的 HTTP 方法。像什么GET、POST、DELETE等等。

const http=require('http');

console.log(http.METHODS)

?

(2) http.STATUS_CODES :此屬性列出了所有的 HTTP請求的狀態(tài)代碼及其描述。

const http=require('http');

console.log(http.STATUS_CODES)

?

常用類: HTTP 模塊提供了5 個很常用的類,分別如下: (1) http.Agent :Node.js 會創(chuàng)建 http.Agent 類的全局實例,以管理 HTTP 客戶端連接的持久性和復(fù)用,這是 Node.js HTTP 網(wǎng)絡(luò)的關(guān)鍵組成部分。該對象會確保對服務(wù)器的每個請求進行排隊并且單個 socket 被復(fù)用,它還維護一個 socket 池。

(2) http.ClientRequest :當 http.request() 或 http.get() 被調(diào)用時,會創(chuàng)建 http.ClientRequest 對象。當響應(yīng)被接收時,則會使用響應(yīng)(http.IncomingMessage 實例作為參數(shù))來調(diào)用 response 事件。返回的響應(yīng)數(shù)據(jù)可以通過以下兩種方式讀?。?/p>

可以調(diào)用 response.read() 方法。在 response 事件處理函數(shù)中,可以為 data 事件設(shè)置事件監(jiān)聽器,以便可以監(jiān)聽流入的數(shù)據(jù)。

(3) http.Server : 當使用 http.createServer() 創(chuàng)建新的服務(wù)器時,通常會實例化并返回此類。擁有服務(wù)器對象后,就可以訪問其方法:

close() 停止服務(wù)器不再接受新的連接。listen() 啟動 HTTP 服務(wù)器并監(jiān)聽連接。

(4) http.ServerResponse :由 http.Server 創(chuàng)建,并作為第二個參數(shù)傳給它觸發(fā)的 request 事件。通常在代碼中用作 res:

const server = http.createServer((req, res) => {

//res 是一個 http.ServerResponse 對象。

})

復(fù)制

這個類的以下這些方法用于與 HTTP 消息頭進行交互:

方法名 作用 getHeaderNames() 獲取已設(shè)置的 HTTP 消息頭名稱的列表。 getHeaders() 獲取已設(shè)置的 HTTP 消息頭的副本。 setHeader(‘headername’, value) 設(shè)置 HTTP 消息頭的值。 getHeader(‘headername’) 獲取已設(shè)置的 HTTP 消息頭。 removeHeader(‘headername’) 刪除已設(shè)置的 HTTP 消息頭。 hasHeader(‘headername’) 如果響應(yīng)已設(shè)置該消息頭,則返回 true。 headersSent() 如果消息頭已被發(fā)送給客戶端,則返回 true。

在處理消息頭之后,可以通過調(diào)用 response.writeHead()(該方法接受 statusCode 作為第一個參數(shù),可選的狀態(tài)消息和消息頭對象)將它們發(fā)送給客戶端。

若要在響應(yīng)正文中發(fā)送數(shù)據(jù)給客戶端,則使用 write()。 它會發(fā)送緩沖的數(shù)據(jù)到 HTTP 響應(yīng)流。

如果消息頭還未被發(fā)送,則使用 response.writeHead() 會先發(fā)送消息頭,其中包含在請求中已被設(shè)置的狀態(tài)碼和消息,可以通過設(shè)置 statusCode 和 statusMessage 屬性的值進行編輯:

response.statusCode = 500

response.statusMessage = '內(nèi)部服務(wù)器錯誤'

復(fù)制

(5) http.IncomingMessage

該類的對象可通過這兩種方式創(chuàng)建:http.Server,當監(jiān)聽 request 事件時。http.ClientRequest,當監(jiān)聽 response 事件時。

它可以用來訪問響應(yīng): 使用 statusCode 和 statusMessage 方法來訪問狀態(tài)。 使用 headers 方法或 rawHeaders 來訪問消息頭。 使用 method 方法來訪問 HTTP 方法。 使用 httpVersion 方法來訪問 HTTP 版本。 使用 url 方法來訪問 URL。 使用 socket 方法來訪問底層的 socket。

2. http模塊簡單案例實踐

創(chuàng)建一個server.js,我們一點一點來用這個http模塊:

const http=require('http')

// 創(chuàng)建服務(wù)器

http.createServer((req,res)=>{

//接收瀏覽器傳的參數(shù),返回渲染的內(nèi)容,都在這個回調(diào)函數(shù)里面來做

//req是接收的瀏覽器的參數(shù),res是返回給瀏覽器渲染的內(nèi)容。

}).listen(3000,()=>{

console.log("server start")

})

/* listen()方法的第一個參數(shù)是端口號,第二個參數(shù)是一個回調(diào)函數(shù),這個回調(diào)函數(shù)是服務(wù)器創(chuàng)建成功后執(zhí)行的函數(shù) */

復(fù)制

命令行運行node server.js ,會看到server start打印在控制臺了,并且光標在閃動,這表示服務(wù)創(chuàng)建成功,并監(jiān)聽了這個服務(wù)?,F(xiàn)在瀏覽器訪問http://localhost:3000/,瀏覽器還訪問不到任何東西,因為我們沒有返回任何數(shù)據(jù)。

我們可以在createServer()的回調(diào)里面調(diào)用res.write()對瀏覽器進行輸出,res.write()可以調(diào)用多次,都會輸出在瀏覽器上。但要注意,最后一定要掉用res.end()。不然瀏覽器會一直等,直到超時。

?

?

?

?

柚子快報激活碼778899分享:node.js

http://yzkb.51969.com/

精彩文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18823932.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄