1. 程式人生 > >NODE.JS--如何使用Node.js

NODE.JS--如何使用Node.js

簡單的說 Node.js 就是執行在服務端的 JavaScript。
Node.js 是一個基於Chrome JavaScript 執行時建立的一個平臺。
Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,V8引擎執行Javascript的速度非常快,效能非常好。

安裝配置

檢查是否安裝成功:DOS視窗 輸入 node -v 或者 node --version 檢查node版本;npm -v 檢查npm版本


使用npm來安裝node的模組

NPM的全稱是Node Package Manager,是隨同NodeJS一起安裝的包管理和分發工具,它很方便讓JavaScript開發者下載、安裝、上傳以及管理已經安裝的包。 
命令:

npm install <module name>
例如:
npm install express -g //安裝express模組,-g代表全域性安裝

全域性安裝的預設位置一般位於:C:\Users\使用者名稱\AppData\Roaming\npm 
但是現在出現了問題,不管我們安裝什麼模組,總會報一長串的錯誤,仔細看錯誤都是和網路有關,原因是npm的配置出了問題,由於偉大的牆導致我們只是使用npm的原始的registry地址下載很慢,我們可以配置淘寶NPM映象地址,方法:

npm config set registry ="https://registry.npm.taobao.org/"
//這一項不是必須的

但是設定完映象之後,再次安裝node模組還是出錯,原因還是網路問題,這時候你就應該想到代理的問題了,使用公司的電腦訪問網路需要設定相應的代理,設定npm的代理:

npm config set proxy="http://使用者名稱:密碼@192.168.16.189:8080"//@後面的是主機和埠

修改全域性路徑:

//npm的配置檔案一般在你電腦的對應使用者目錄下面搜尋: .npmrc 可以找到此配置檔案
npm config set prefix "D:\\nodejs\\node_modules\\npm\\node_cache"//設定下載的模組的儲存位置,也就是在全域性安裝模式下安裝的模組的位置
npm root -g //檢視npm全域性安裝目錄 npm config set cache "D:\\nodejs\\node_modules\\npm\\node_global_modules" //設定快取的儲存位置

隨著以後下載的模組越來越多,我們需要重新設定模組的下載位置和快取的儲存位置 
使用 package.json 
每一個下載的模組都有一個package.json檔案,package.json 位於模組的目錄下,用於定義包的屬性。接下來讓我們來看下 express 包的 package.json 檔案,位於 node_modules/express/package.json 內容: 
Package.json 屬性說明:

name    - 包名。
version - 包的版本號。
description - 包的描述。
homepage    - 包的官網 url 。
author  - 包的作者姓名。
contributors - 包的其他貢獻者姓名。
dependencies - 依賴包列表。如果依賴包沒有安裝,npm 會自動將依賴包安裝在 node_module 目錄下。
repository   - 包程式碼存放的地方的型別,可以是 git 或 svn,git 可在 Github 上。
main - main 欄位是一個模組ID,它是一個指向你程式的主要專案。就是說,如果你包的名字叫 express,然後使用者安裝它,然後require("express")。
keywords - 關鍵字

版本號

使用NPM下載和釋出程式碼時都會接觸到版本號。NPM使用語義版本號來管理程式碼,這裡簡單介紹一下。 
語義版本號分為X.Y.Z三位,分別代表主版本號、次版本號和補丁版本號。當代碼變更時,版本號按以下原則更新。 

如果只是修復bug,需要更新Z位。 

如果是新增了功能,但是向下相容,需要更新Y位。 
如果有大變動,向下不相容,需要更新X位。

簡單執行

開啟安裝目錄 找到 node.exe 執行就可以看到類似DOS的視窗----REPL 的命令列視窗
> x =1010>var y =10undefined> x + y
20> console.log("Hello World")HelloWorldundefined> console.log("www.runoob.com")
www.runoob.com
undefined
*應用Node.js程式

首先要使用express建立一個專案

使用npm安裝Express開發框架:

//命令列輸入命令  
        npm install -g express  
 或者   npm install -g express-generator  

新建專案

//命令列輸入命令  
        express -t ejs newsproject  //使用express的建立命令建立一個名為newsproject的專案

如果此處出現意外錯誤:‘express’ 不是內部或外部命令,也不是可執行的程式或批處理檔案。 
原因是版本問題:當前版本是4.0.0,改成3.5.0即可執行,在cmd中輸入下面命令 
npm install -g [email protected] 
或 
npm install -g [email protected] 
成功安裝express之後 
進入專案目錄,執行npm安裝

//進入專案目錄  
        cd newsproject  //開啟專案目錄
//輸入命令安裝  
        npm install  //npm安裝

執行專案

//專案目錄下執行命令  
         node app.js  //執行此專案

到此為止,我們已經使用express框架自動搭建了一個node伺服器,並啟動了express提供的一個demo應用,我們可以按照cmd中的提示修改下面的埠號,使用瀏覽器訪問即可得到demo應用的響應。 
瀏覽器訪問:http://127.0.0.1:3000/即可見nodejs站點頁面,頁面輸出:Express

*建立第一個node.js應用:

在我們建立 Node.js 第一個 “Hello, World!” 應用前,讓我們先了解下 Node.js 應用是由哪幾部分組成的: 
1、引入 required 模組:我們可以使用 require 指令來載入 Node.js 模組。 
2、建立伺服器:伺服器可以監聽客戶端的請求,類似於 Apache 、Nginx 等 HTTP 伺服器。 
3、接收請求與響應請求, 伺服器很容易建立,建立成功之後客戶端可以使用瀏覽器或終端傳送 HTTP 請求,伺服器接收請求後返回響應資料

步驟一、引入 required 模組 
我們使用 require 指令來載入 http 模組,並將例項化的 HTTP 賦值給變數 http,例項如下: 
var http = require(“http”); 
步驟二、建立伺服器 
接下來我們使用 http.createServer() 方法建立伺服器,並使用 listen 方法繫結 8888 埠。 函式通過 request, response 引數來接收和響應資料。 
例項如下,在你專案的根目錄下建立一個叫 server.js 的檔案,並寫入以下程式碼:

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/');

分析Node.js 的 HTTP 伺服器: 
第一行請求(require)Node.js 自帶的 http 模組,並且把它賦值給 http 變數。 
接下來我們呼叫 http 模組提供的函式: createServer 。這個函式會返回 一個物件,這個物件有一個叫做 listen 的方法,這個方法有一個數值引數, 指定這個 HTTP 伺服器監聽的埠號。

以上程式碼我們完成了一個可以工作的 HTTP 伺服器,也就是說上面的程式碼我們就可以完成了一個本地伺服器的搭建,當我們執行上面的程式碼的時候,一個本地伺服器就開始運行了,我們只需要開啟瀏覽器向此伺服器傳送請求,此伺服器就會給瀏覽器返回你定義的返回資料

使用 node 命令執行以上的程式碼:

node server.js
Server running at http://127.0.0.1:8888 //cmd輸出資訊

接下來,開啟瀏覽器訪問 http://127.0.0.1:8888/,你會看到一個寫著 “Hello World”的網頁。 
nodejs-helloworld