我們將帶你踏上Node.js的奇妙旅程。透過簡單易懂的步驟,你將學會如何創建一個基本的HTTP伺服器,處理請求與回應,以及實作基本的路由設定。今天就在Node.js寫下你的第一行HelloWorld。HTTP伺服器HTTP伺服器是一種軟體應用程式,負責處理和回應HTTPHypertextTransferProtocol請求。當用戶在瀏覽器中輸入網址或點擊連結時,瀏覽器會向該網址所在的伺服器發送HTTP請求。HTTP伺服器接收到這個請求後,根據請求的內容,可能是獲取網頁、圖片、文件等,然後回應相應的資源給瀏覽器。以下會帶你一步步學習如何創建一個HTTP伺服器。創建一個新的資料夾放置HTTP伺服器資料使用終端機創建一個新的資料夾:mkdirmyFirstHttpcdmyFirstHttp初始化你的專案執行以下指令初始化你的Node.js專案:npminit這會創建一個package.json檔案,這是Node.js專案的配置文件。安裝HTTP模組Node.js內建了一個HTTP模組,讓我們能夠輕鬆地建立HTTP伺服器。執行以下指令安裝HTTP模組:npminstallhttp開始編寫你的第一個HTTP伺服器首先,在你的專案目錄中,建立一個新的檔案app.js。consthttprequire"http";constserverhttp.createServerreq,res{res.send"HelloWorld";};//監聽伺服器port3000server.listen3000,{console.log"ServerOn.";};創建了一個HTTP伺服器,當你訪問http://localhost:3000/時,伺服器會收到一個HelloWorld的回應。執行你的HTTP伺服器回到終端機,執行以下指令啟動你的伺服器:nodeserver.js現在,你應該已經成功的擁有自己的第一個Node.jsHTTP伺服器了。處理請求與回應在開始處理HTTP請求之前,我們需要了解一下HTTP請求與回應的基本結構。HTTP請求的基本結構一個標準的HTTP請求由以下部分組成:請求方法RequestMethod定義了客戶端希望對指定資源進行的操作,例如GET、POST、PUT、DELETE等。URLUniformResourceLocator要訪問的資源的位置。標頭Headers包含了關於請求的各種資訊,如Accept、UserAgent等。請求主體RequestBody在一些請求中,客戶端可以向伺服器發送資料,通常用於POST請求。HTTP回應的構成要素當伺服器收到HTTP請求後,它需要發送一個HTTP回應。HTTP回應的基本結構包括:狀態碼StatusCode三位數的代碼,指示請求的結果,例如200表示成功,404表示找不到資源,500表示伺服器錯誤等。標頭Headers類似於請求標頭,提供有關回應的詳細資訊。回應主體ResponseBody包含實際的回應內容,可能是HTML、JSON、圖片等。為HTTP伺服器添加不同請求接下來,透過上面的範例進一步的改進我們的應用程式,讓它能夠處理不同的請求。constserverhttp.createServerreq,res{ifreq.method"GET"&&req.url"/"{res.send"Home";}elseifreq.method"GET"&&req.url"/about"{res.send"About";}else{res.status404.send"404";};};透過檢查req.method與req.url來回傳不同的結果。例如訪問http://localhost:3000/about時,會得到一個包含About的回應。路由設定路由是一個重要的概念,它允許我們根據請求的路徑提供不同的內容。在上一段的範例中,我們已經透過檢查req.method與req.url來添加了簡單的路由。現在,我們來透過Express來進一步添加更多路由來擴充我們的應用程式。consthttprequire"http";constexpressrequire"express";constappexpress;app.get"/",req,res{res.send"Home";};app.get"/about",req,res{res.send'About';};app.get"/contact",req,res{res.send"Contact";};app.usereq,res{res.status404.send"404";};http.createServerapp.listen3000,{console.log"ServerOn.";};使用Express,我們可以更輕鬆地定義路由、處理請求和回應,以及處理錯誤。範例中定義了三個路由,分別處理/、/about和/contact的GET請求。如果請求的路徑不匹配任何路由,Express將回傳404錯誤處理來回應。下一章節我們會更深入介紹Express系列文章ahref"https://pardn.io/blog/nodejsinstall"target"self"Node.js.JavaScript的後端魔法/aahref"https://pardn.io/blog/nodejspromiseasync"target"self"Promise與Async/Await的非同步設計/a建立第一個Node.js應用程式有多難?ahref"https://pardn.io/blog/nodejsexpress"target"self"什麼?Express竟然如此的好用/aahref"https://pardn.io/blog/nodejsmongodbmysql"target"self"前進資料庫!MongoDB與MySQL/aahref"https://pardn.io/blog/nodejsmiddleware"target"self"中介軟體Middleware與定制流程/aahref"https://pardn.io/blog/nodejspugejs"target"self"服務端渲染SSR的救星!Pug與EJS/aahref"https://pardn.io/blog/nodejsjwtxsscsp"target"self"實作JWT會員登入以及防範SQL注入與XSS攻擊/aahref"https://pardn.io/blog/nodejsrestfulapi"target"self"RESTfulAPI該怎麼設計?/aahref"https://pardn.io/blog/nodejsmochasupertest"target"self"Mocha?Supertest?單元與整合測試?/aahref"https://pardn.io/blog/nodejspm2"target"self"搭配Pm2讓Node.js持久化在線/a相關連結作者:PardnChiu]https://github.com/pardnchiuNode.js官方網站:https://nodejs.org/zhtw]https://nodejs.org/zhtw