Node.js 教程 03 - 創建HTTP服務器


 

前言:

  如果我們使用PHP來編寫后端的代碼時,需要Apache 或者 Nginx 的HTTP 服務器,並配上 mod_php5 模塊和php-cgi。

  從這個角度看,整個"接收 HTTP 請求並提供 Web 頁面"的需求根本不需 要 PHP 來處理。

  不過對 Node.js 來說,概念完全不一樣了。使用 Node.js 時,我們不僅僅 在實現一個應用,同時還實現了整個 HTTP 服務器。

  事實上,我們的 Web 應用以及對應的 Web 服務器基本上是一樣的。

 


 

 

創建一個簡單的HTTP服務器:

  這里我們使用創建文件,然后執行的方式,來創建此實例。

  在E:\NodejsDemo文件夾下,創建“server.js”文件,代碼如下:

1 var http = require("http");
2 
3 http.createServer(function(request,response){
4     response.writeHead(200, {"Content-Type" : "text/plain"});
5     response.end("Hello World!\n");
6 }).listen(88);
7 
8 console.log("Server running at http://127.0.0.1:88/")

  上述代碼中,我們先引入了http模塊,並存入本地的http對象中。

  然后使用http對象創建一個服務,設置文檔響應類型等,最后結束並返回響應一串字符串。

  啟動監聽在88端口。

 

  以上代碼,我們已經完成了一個簡單Node.js的HTTP服務器的創建。

  下面我們在DOS下使用node命令來運行它:

  

 

  此時,防火牆可能會提示,點擊允許訪問即可:

  

 

  然后、我們打開瀏覽器,訪問地址:http://127.0.0.1:88,效果如下:

  

 

  看到這個界面了,是不是很雞凍,哈哈。

 


 

 

強化案例:

  不知道大家是否了解類似於JSP、ASP.NET的運行機制。

  例如JSP,解析的時候,最后生成的是HTML源碼文件,將源JSP文件中的代碼一行行拼接輸出。

  按照這個原理,我們能不能也實現一個HTML的服務器呢?

 

  主程序“main.js”的代碼如下:

 1 var http = require("http");
 2 
 3 var html = "";
 4 html += "<!DOCTYPE html>";
 5 html += "<html>";
 6 html += "   <head>";
 7 html += "       <meta charset='utf-8' />";
 8 html += "       <title>孤影'Blog</title>";
 9 html += "       <style>body{background:black; color:#0F6; text-align:center; text-shadow:0px 0px 10px #0F6;}</style>";
10 html += "   </head>";
11 html += "   <body>";
12 html += "       <h1>孤影'Blog</1>";
13 html += "       <h2>Welcome to my blog!</h2>";
14 html += "   </body>";
15 html += "</html>";
16 
17 http.createServer(function (request, response) {
18     response.writeHead(200, { "Content-Type": "text/html" });
19     response.end(html);
20 }).listen(88);

 

  OK、打開DOS、運行“node main.js”,效果如下:

 

  有沒有腦洞大開?!呵呵。下山自行修煉去吧。哈哈。。

 


 

 

簡單分析Node.js的HTTP服務器:

  這里,我奉承簡單入門為主,所以就不做過多的介紹了,大家理解就好。

 

  W3C官方的解釋如下:

  • 第一行請求(require)Node.js 自帶的 http 模塊,並且把它賦值給 http 變量。
  • 接下來我們調用 http 模塊提供的函數: createServer 。這個函數會返回 一個對象,這個對象有一個叫做 listen 的方法,這個方法有一個數值參數, 指定這個 HTTP 服務器監聽的端口號。

 

  個人介紹:

  1. require表示引入一個模塊,在這里,我們引入的是系統的http模塊,從而創建了一個http模塊服務。
  2. 然后,我們把它賦值保存到了一個http對象中。
  3. 下面,我們使用該對象的createServer方法,執行了一個function函數。
  4. 該函數傳入一個request和response的請求及響應對象,設置響應狀態碼為200,響應類型為text文本,響應內容為“Hello World!”。
  5. 最后,調用其“listen”方法,啟動監聽,監聽端口為88。
  6. 命令結束的時候,我們輸出了一段日志:“Server running at http://127.0.0.1:88”。

 


 

 

小結:

  我也是剛學,所以深刻體會,這個東西慢慢的理解就好,別太死扣語法了。循序漸進的而已。

  希望大家趕緊上手吧,呵呵。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM