iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
自我挑戰組

node.js 從初學者到高手!系列 第 28

Day 28 node.js - 學習server的創立過程 & 語法說明

  • 分享至 

  • xImage
  •  

大家好,今天讓我們來學習到底實際上node.js是如何運作一個server的吧!

首先一個網站的運作模式為:當使用者進入一個網址,該網址會發出請求(request),而server收到請求後,便會發送回應(response)至網站。

所以讓我們再回到一開始,搞懂我們在第4天所做出來的第一支程式到底在幹嘛吧!

以下為我稍微簡化過後的code:

const http = require('http');

const localhost = '127.0.0.1';

const server = http.createServer( (req,res) => {
    res.setHeader('Content-Type', 'text/plain');
    res.write('Hello World!');
    res.end();
});

server.listen(3000, localhost, () => {
    console.log('Server is running on port 3000');
});

第一點,當我們在運行一個server時,一定會需要import 'http'到我們的程式,因為http是網路上各個網站和使用者互相溝通的共同語言,沒有了http就像是人類沒有任何語言,失去了溝通的能力。

再來我們就可以使用createServer來創造出一個伺服器了,而內部的函式必定會有req和res兩個參數,代表著request和respond。裡面的函式中,res就代表著當我們收到req時,根據req的內容所希望作出的回應。

setHeader代表的是我們回應的格式是什麼,這裡的範例是傳回單純的text而已,但還有很多種資料型態,像是HTML或json檔等。
而res.write就代表著我們要輸出的訊息,在這裡就表示在網頁上會顯示什麼樣的文字。
最後res.end()就是告訴網站,我們的respond到此結束。

以上就是最基本的一個會傳回文字顯示在網頁上的server了。創造完一個server後我們還要知道何時會收到使用者的請求,所以會需要用到listen這個method。

在宣告listen時會需要一個port number,也就是這裡的'3000',port就像是每一個伺服器的門,每一臺電腦中都會有非常多的port來讓各種程式運行,當我們自己在設計server時,通常都會將自己的server的port number設定為3000。後面的'localhost'(127.0.0.1),則是代表server是在我們自己的電腦上運行的server。

所以,當我們運行這一個js檔時,console便會傳回"Server is running on port 3000"的訊息:
https://ithelp.ithome.com.tw/upload/images/20231012/20163170JGGHqgi8ws.png
也就代表我們的server目前已經開設好並正在等候request。而我們要訪問這個網頁的話就要在瀏覽器輸入'localhost:3000',就可以看到網頁上的"Hello World!"訊息了!
https://ithelp.ithome.com.tw/upload/images/20231012/20163170n1jFRJC75q.png

以上為今天的學習!明天見!


上一篇
Day 27 node.js - stream, buffer之概念 & 如何有效率的讀取和寫入檔案
下一篇
Day 29 node.js - 學習如何顯示HTML頁面 & 根據網址給出不同頁面
系列文
node.js 從初學者到高手!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言