Node.js 創(chuàng)建第一個(gè)應(yīng)用
如果我們使用PHP來(lái)編寫(xiě)后端的代碼時(shí),需要Apache 或者 Nginx 的HTTP 服務(wù)器,并配上 mod_php5 模塊和php-cgi。
從這個(gè)角度看,整個(gè)"接收 HTTP 請(qǐng)求并提供 Web 頁(yè)面"的需求根本不需 要 PHP 來(lái)處理。
不過(guò)對(duì) Node.js 來(lái)說(shuō),概念完全不一樣了。使用 Node.js 時(shí),我們不僅僅 在實(shí)現(xiàn)一個(gè)應(yīng)用,同時(shí)還實(shí)現(xiàn)了整個(gè) HTTP 服務(wù)器。事實(shí)上,我們的 Web 應(yīng)用以及對(duì)應(yīng)的 Web 服務(wù)器基本上是一樣的。
在我們創(chuàng)建 Node.js 第一個(gè) "Hello, World!" 應(yīng)用前,讓我們先了解下 Node.js 應(yīng)用是由哪幾部分組成的:
引入 required 模塊:我們可以使用 require 指令來(lái)載入 Node.js 模塊。
創(chuàng)建服務(wù)器:服務(wù)器可以監(jiān)聽(tīng)客戶(hù)端的請(qǐng)求,類(lèi)似于 Apache 、Nginx 等 HTTP 服務(wù)器。
接收請(qǐng)求與響應(yīng)請(qǐng)求 服務(wù)器很容易創(chuàng)建,客戶(hù)端可以使用瀏覽器或終端發(fā)送 HTTP 請(qǐng)求,服務(wù)器接收請(qǐng)求后返回響應(yīng)數(shù)據(jù)。
創(chuàng)建 Node.js 應(yīng)用
步驟一、引入 required 模塊
我們使用 require 指令來(lái)載入 http 模塊,并將實(shí)例化的 HTTP 賦值給變量 http,實(shí)例如下:
var http = require("http");
步驟一、創(chuàng)建服務(wù)器
接下來(lái)我們使用 http.createServer() 方法創(chuàng)建服務(wù)器,并使用 listen 方法綁定 8888 端口。 函數(shù)通過(guò) request, response 參數(shù)來(lái)接收和響應(yīng)數(shù)據(jù)。
實(shí)例如下,在你項(xiàng)目的根目錄下創(chuàng)建一個(gè)叫 server.js 的文件,并寫(xiě)入以下代碼:
var http = require('http');http.createServer(function (request, response) {// 發(fā)送 HTTP 頭部 // HTTP 狀態(tài)值: 200 : OK// 內(nèi)容類(lèi)型: text/plain response.writeHead(200, {'Content-Type': 'text/plain'});// 發(fā)送響應(yīng)數(shù)據(jù) "Hello World" response.end('Hello World\n');}).listen(8888);// 終端打印如下信息console.log('Server running at http://127.0.0.1:8888/');
以上代碼我們完成了一個(gè)可以工作的 HTTP 服務(wù)器。
使用 node 命令執(zhí)行以上的代碼:
node server.jsServer running at http://127.0.0.1:8888/
接下來(lái),打開(kāi)瀏覽器訪(fǎng)問(wèn) http://127.0.0.1:8888/,你會(huì)看到一個(gè)寫(xiě)著 "Hello World"的網(wǎng)頁(yè)。
分析Node.js 的 HTTP 服務(wù)器:
第一行請(qǐng)求(require)Node.js 自帶的 http 模塊,并且把它賦值給 http 變量。
接下來(lái)我們調(diào)用 http 模塊提供的函數(shù): createServer 。這個(gè)函數(shù)會(huì)返回 一個(gè)對(duì)象,這個(gè)對(duì)象有一個(gè)叫做 listen 的方法,這個(gè)方法有一個(gè)數(shù)值參數(shù), 指定這個(gè) HTTP 服務(wù)器監(jiān)聽(tīng)的端口號(hào)。
Gif 實(shí)例演示
接下來(lái)我們通過(guò) Gif 圖為大家演示實(shí)例操作:
