天天看點

node.js快速入門(一)

一、Node.js簡介

Node.js 是一個基于 Chrome V8 引擎的

JavaScrip

運作環境。 Node.js 使用了一個

事件驅動

非阻塞式 I/O

的模型。

JavaScrip

是一種具有函數優先的輕量級,解釋型或即時編譯型的進階程式設計語言。JavaScript 基于原型程式設計、多範式的動态腳本語言,并且支援面向對象、指令式和聲明式(如函數式程式設計)風格。

Node

是一個類似于perl,python,ruby等的一個本地運作環境,理論上可以在它的基礎上開發任何應用,使用expressjs庫,可在node環境下開發高性能web伺服器。

事件驅動

是指在持續事務管理過程中,進行決策的一種政策,即跟随目前時間點上出現的事件,調動可用資源,執行相關任務,使不斷出現的問題得以解決,防止事務堆積。

非阻塞式 I/O

,也叫異步 I/O,顯然對應的就是阻塞式 I/O。阻塞式 I/O 是指,當一個線程在執行 I/O 操作時,這個線程會阻塞,等待 I/O 操作完成後繼續執行。故使用單線程非阻塞式I/O的node的性能優異。但存線上程崩潰的隐患。

二、安裝配置

安裝node.js和npm

sudo apt-get install nodejs
sudo apt-get install npm 
           
npm 是 Node.js 的包管理工具,用來安裝各種 Node.js 的擴充
           

驗證安裝

$ node -v
v10.19.0  

$ npm -v 
6.14.4       
           

測試js運作環境

$ vi hlwd.js
console.log("hello world")

$ node hlwd.js
hello world #成功
           

三、建立伺服器

Node.js 應用是由以下部分組成:

1.引入 required 子產品:我們可以使用 require 指令來載入 Node.js 子產品。

2.建立伺服器:伺服器可以監聽用戶端的請求,類似于 Apache 、Nginx 等 HTTP 伺服器。

3.接收請求與響應請求 伺服器很容易建立,用戶端可以使用浏覽器或終端發送 HTTP 請求,伺服器接收請求後傳回響應資料。

分析Node.js 的 HTTP 伺服器

·第一行請求(

require

)Node.js 自帶的 http 子產品,并且把它指派給 http 變量。

·

·接下來調用 http子產品提供的函數:

createServer

。這個函數會傳回 一個對象,這個對象有一個叫做

listen

的方法,這個方法有一個數值參數,指定這個 HTTP 伺服器監聽的

端口号

引入requred子產品

使用 require 指令來載入 http 子產品,并将執行個體化的 HTTP 指派給變量 http。

vi server.js
           

建立伺服器

使用 http.createServer() 方法建立伺服器,并使用 listen 方法綁定 8888 端口。 函數通過 request, response 參數來接收和響應資料。

var http = require('http');

http.createServer(function (request, response) {

    // 發送 HTTP 頭部 
    // HTTP 狀态值: 200 : OK
    // 内容類型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});

    // 發送響應資料 "Hello World"
    response.end('Hello World\n');
}).listen(8888);

// 終端列印如下資訊
console.log('Server running at http://127.0.0.1:8888/');
           

測試伺服器

以上代碼我們完成了一個可以工作的 HTTP 伺服器。

使用 node 指令執行以上的代碼:

$ node server.js 
Server running at http://127.0.0.1:8888/                                                                                        
           

打開浏覽器通路 http://127.0.0.1:8888/,可以看到一個寫着 "Hello World"的網頁

node.js快速入門(一)

四、NPM介紹

NPM是随同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,常見的使用場景有以下幾種:

允許使用者從NPM伺服器下載下傳别人編寫的第三方包到本地使用。

允許使用者從NPM伺服器下載下傳并安裝别人編寫的指令行程式到本地使用。

允許使用者将自己編寫的包或指令行程式上傳到NPM伺服器供别人使用。

常用 NPM 指令

安裝

常用的 Node.js web架構子產品 express:

本地安裝:将安裝包放在 ./node_modules 下(運作 npm 指令時所在的目錄);可以通過 require() 來引入本地安裝的包。

$ npm install express	
           

全局安裝:将安裝包放在 /usr/local 下或者你 node 的安裝目錄;可以直接在指令行裡使用。

$ npm install express -g 
           

更新

子產品

$ npm update express
           

搜尋

子產品

$ npm search express
           

解除安裝

express子產品

$ npm uninstall express
           

檢視

是否解除安裝成功

清空NPM本地緩存

$ npm cache clear可以
           

檢視某條指令的詳細

幫助

使用package.json

package.json 位于子產品的目錄下,用于定義包的屬性。Package.json 屬性說明:

name

- 包名。

version

- 包的版本号。

description

- 包的描述。

homepage

- 包的官網 url 。

author

- 包的作者姓名。

contributors

- 包的其他貢獻者姓名。

dependencies

- 依賴包清單。如果依賴包沒有安裝,npm 會自動将依賴包安裝在 node_module 目錄下。

repository

- 包代碼存放的地方的類型,可以是 git 或 svn,git 可在 Github 上。

main

- main 字段指定了程式的主入口檔案,require(‘moduleName’)

就會加載這個檔案。這個字段的預設值是子產品根目錄下面的 index.js。

keywords

- 關鍵字

其他指令

#建立子產品
$ npm init
#在npm資源庫中注冊使用者
$ npm adduser
#釋出子產品
$ npm publish
           

使用淘寶 NPM 鏡像

淘寶 NPM 鏡像是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(隻讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務同步。

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
           

之後便可以使用淘寶定制的 cnpm (gzip 壓縮支援) 指令行工具代替預設的 npm,如:

五、Node.js REPL互動式解釋器

Node 自帶了REPL(Read Eval Print Loop:互動式解釋器),可以執行以下任務:

讀取

- 讀取使用者輸入,解析輸入的 Javascript 資料結構并存儲在記憶體中。

執行

- 執行輸入的資料結構

列印

- 輸出結果

循環

- 循環操作以上步驟直到使用者兩次按下 ctrl-c 按鈕退出。

node.js的REPL類似于python終端,是以隻做一些簡單補充:

變量聲明需要使用

var

關鍵字

使用下劃線

_

擷取上一個表達式的運算結果
$ node

> var a = 1 +4
undefined
> var sum = _
undefined
> sum
5
           

REPL 指令

ctrl + c

按下兩次 - 退出 Node REPL。

ctrl + d

- 退出 Node REPL.

向上/向下 鍵

- 檢視輸入的曆史指令

tab 鍵

- 列出目前指令

.help

- 列出使用指令

.break

- 退出多行表達式

.clear

- 退出多行表達式

.save filename

- 儲存目前的 Node REPL 會話到指定檔案

.load filename

- 載入目前 Node REPL 會話的檔案内容。

以上,我們已經能夠初步的使用node.js了,接下來會介紹node.js的一些特性。

繼續閱讀