iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
SideProject30

中國香港區—中學資訊科技教育及電腦行政支援系列 第 6

[Day 6] 零碳運算 - 以Express 伺服器發送聊天室的HTML頁面

  • 分享至 

  • xImage
  •  

Express只能發送文字嗎?

https://ithelp.ithome.com.tw/upload/images/20230921/20147341LcDkOUo8Ws.jpg
上回提到用Express 伺服器跟前端說「Hello」,純文字的內容,甚麼介面也沒有,說好的聊天室呢?

一般來說,客戶端無法看見任何在伺服器上的檔案,這也是為了伺服器的安全(怎能讓網民隨意檢視伺服器程式的代碼呢!)。然而,Express 提供了一個優雅的自帶功能,今天我將會示範如何用這功能向客戶端發送任何靜態檔案。

聊天室的頁面

來寫一個極簡的吧,反正這階段只是在做Proof-of-concept。請先在根目錄開一個資料夾,名為「public」,意味著這資料夾內的內容可以讓客戶端自由獲取。然後,在裡面新增一個HTML檔,名為index.html。
https://ithelp.ithome.com.tw/upload/images/20230921/20147341uAGaiacswG.jpg

把以下的代碼放進去。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
    <link href="style.css" rel="stylesheet" />
</head>

<body>
    <h1>零碳運算</h1>
    <input></input>
    <input type="button" value="send"></input>
</body>

</html>

然後,請回到根目錄的index.js,也就是伺服器程式的門戶,以下面句子取代apt.get():

這個部分不要了
//app.get('/', (req, res) => {
//    //向客戶回應「Hello World!」
//    res.send('Hello World!');
//});

// 以 / 為起點,可以根據public 資料夾內的相對路徑獲得裡面的任何靜態檔案。
app.use("/", express.static("public"));

因此,若果我就這到「localhost:3000/index.html」,我將能讀取index.html的頁面。

https://ithelp.ithome.com.tw/upload/images/20230921/20147341bruZnUU5VY.jpg

成功了。自此,你可以像平日一樣在public 資料夾內放任何東西,例如CSS Stylesheet。在這資料夾可視為前端。


上一篇
[Day 5] 零碳運算 - Express 的 Hello World!
下一篇
[Day 7] 零碳運算 - 接通互聯網的另一端
系列文
中國香港區—中學資訊科技教育及電腦行政支援7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言