iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0

有人嘴我說用 li 來列點很難閱讀嗚嗚
這篇換個方式嘗試

Node.js 和傳統的 Web 伺服器有什麼區別?

Node.js 的差別在於:
1.單線程非阻塞 I/O 模型,適合 I/O 密集型應用,如 Web 伺服器、即時聊天應用等
2.開發語言也是 JavaScript, 方便前後端統一語言,降低學習成本

什麼是中間件?

在請求與響應過程中加入一些函式,對請求或響應對象進行操作,這就稱為中間件
例如在 Express.js 中,http 請求很常搭配中間件使用,像是解析請求主體、處理 CORS、記錄日誌、處理錯誤等。

範例:

const express = require('express');
const app = express();

// 簡單的日誌中間件
app.use((req, res, next) => {
    console.log(`${req.method} ${req.url}`);
    next(); // 傳遞控制權給下一個中間件
});

// 路由中間件
app.get('/', (req, res) => {
    res.send('Hello, world!');
});

// 錯誤處理中間件
app.use((err, req, res, next) => {
    console.error(err.stack);
    res.status(500).send('Something broke!');
});

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

什麼是 CORS?

跨域資源共享 Cross-Origin Resource Sharing
一種瀏覽器的機制,可以對伺服器設定白名單,也就是設定"允許哪些來源的資源請求"
通常沒有設定 CORS 的話,瀏覽器預設會限制只能從"相同來源的伺服器"請求資源,不同網域的資源請求會被擋住

相同來源指的是

  • 協議(Protocol):如 http, https。
  • 域名(Domain):如 example.com, another-example.com。
  • 埠號(Port):如 80, 443。
    當這三個條件全部相同時,兩個 URL 被認為是「同源」的。

上一篇
Day-04 JavaScript 問題
下一篇
Day-06 Node.js 問題
系列文
Web仔常見的面試問題 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言