Node.js - Hello World!
一樣先開虛擬機哦~
並且開啟終端機連進 server 裡面~
以下是 Node.js 官方網站的 web server 程式範例,我稍作小修改:
| |
我們先在虛擬機的資料夾建立一個子資料夾 ‘HelloWorld’
在 HelloWorld 資料夾裡面建立一個 app.js
內容如上,存檔。
使用終端機進入 server :
| |
到瀏覽器輸入 http://192.168.33.10:1337/
(或者是你的 Vagrantfile 裡面設定的 private IP)
即可看到 Hello World 了!
要關掉 Server 也非常簡單,回到下指令的地方,按下 ctrl + c 即可中斷程式
分析
簡單分析一下此段程式:
| |
將 http 這個模組引入,並指定給物件 http
| |
先略過中間的 function 不看,
這段 code 的用意即是讓呼叫 http 物件中的 createServer 的方法,
.listen() 則是設定該 server 要跑在哪個 port、hostname
| |
上面的 code 則是原本在 .createServer() 裡的,
我們可以看一下 Node.js 的 API doc 關於此方法的部分
.createServer() 要帶入的東西其實是一個 requestListener,
也就是當 Server 跑起來時,我們開啟瀏覽器,輸入 127.0.0.1:1337 時,
Node.js Server 要回丟的東西,因此觀察一下此 listener:
| |
function 中帶入參數的是 req, res,意即 request, response,
request 即是 server 接收到 client 端的訊息,
response 則是 server 要回丟給 client 的訊息,
由於在此範例中,我們只是要回丟給 client 端一個 hello world 的訊息,
因此,我們不處理 client 送給 server 的 request,
我們只需處理要回丟給 client 的訊息,
| |
寫網頁的開發者應該對一些關鍵字例如 Content-type, text/plain 不陌生,
第一行代表回傳給使用者的訊息中,HTTP HEAD 的設定是 http status code 200,
並且 Content-type 設定為 text/plain
| |
那麼,以下這行 code 的意思即是,此次要回送給使用者的訊息到這裡結束,以 “Hello World” 作結尾
| |
因此整段 code 看下來,就是一個非常簡單的 http server,
http://192.168.33.10:1337/ 總是會回傳 Hello World
今天就完成了我們的 Hello World 了!