Node.js 中的路由請求
路由 HTTP 請求非常重要,因為我們希望根據請求 URL 執行不同的業務規則,並且每個路由的響應將不同。
之前我們看到,我們可以透過 request.url 在 Node 中獲取 URL。下面顯示了一個簡單的帶有路由的使用者姓名輸入示例:
const http = require('http');
const server = http.createServer((req, res)=>{
const url = req.url;
if(url === '/'){
res.write('<html>');
res.write('<head> <title> Hello TutorialsPoint </title> </head>');
res.write(' <body> <form action="/username" method="POST">
<input type="text" name="user"/>
<button type="submit">Submit</button> </body>');
res.write('</html>');
return res.end();
}
});
server.listen(3000);在終端上執行:node App.js
開啟瀏覽器並導航到 localhost:3000/,您將看到以下輸出:
我們檢查了 URL 是否與 ‘/’ 匹配,然後僅向客戶端傳送響應以顯示帶有提交按鈕的輸入框。在程式碼中,我們使用了 return res.end() 來避免在呼叫 end() 函式後對響應物件進行任何更改。
如果 URL 與 ‘/’ 不同,則我們可以顯示其他訊息。我們使用了表單 action ‘/username’ 並且方法為 post。我們還有一個名稱屬性為 user 的輸入框。此名稱屬性將在 post 請求中傳遞以供進一步使用。
完整的 App.js 檔案如下:
const http = require('http');
const server = http.createServer((req, res)=>{
const url = req.url;
if(url === '/'){
res.write('<html>');
res.write('<head> <title> Hello TutorialsPoint </title> </head>');
res.write(' <body> <form action="/username" method="POST"> <input type="text" name="username"/> <button type="submit">Submit</button> </body>');
res.write('</html>');
return res.end();
}
res.write('<html>');
res.write('<head> <title> Hello TutorialsPoint </title> </head>');
res.write(' <body> Hello </body>');
res.write('</html>');
res.end();
});
server.listen(3000);輸入使用者名稱並點擊發送後的輸出螢幕:

我們可以在這裡看到,URL 更改為 /username,這是因為我們在之前的響應中添加了表單 action。
在第二個 res.end() 中,我們沒有新增 return 語句,因為之後沒有程式碼,所以我們不需要擔心它。
使用 URL /username,我們的程式碼不會執行包含表單輸入程式碼的 if 塊,而是會執行 if 塊下面的程式碼。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP