在 Node.js 中重定向請求
現在我們有了下面所示的 App.js 檔案,我們希望一旦使用者名稱稱被節點伺服器接收,就將使用者重定向回 '/'。我們將在名為 username.txt 的檔案中儲存使用者名稱
初始 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);我們添加了以下包含重定向的 if 塊。
首先使用 const fs = require('fs') 新增檔案系統模組。檔案系統 fs 模組為我們提供了 writeFile 和 writeFileSync 方法,用於向檔案寫入內容。目前我們僅向檔案寫入一個測試值。稍後我們來看看如何從請求中寫入值。
首先使用 const fs = require('fs') 新增檔案系統模組。檔案系統 fs 模組為我們提供了 writeFile 和 writeFileSync 方法,用於向檔案寫入內容。目前我們僅向檔案寫入一個測試值。稍後我們來看看如何從請求中寫入值。
if(url === '/username' && req.method === 'POST'){
fs.writeFileSync('username.txt', 'test value');
//redirect
res.statusCode=302;
res.setHeader('Location','/');
return res.end();
}Http 重定向狀態碼是 302。“Location”也是一個在響應中設定的標頭。Location 標頭指向 url '/'。響應將重定向到此指向。
使用者輸入輸出螢幕

重定向後,我們將回到同一頁面,並在專案目錄中建立一個檔案。

完整的已更新 App.js 檔案是 −
const http = require('http');
const fs = require('fs');
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();
}
if(url === '/username' && req.method === 'POST'){
fs.writeFileSync('username.txt', 'test value');
//redirect
res.statusCode=302;
res.setHeader('Location','/');
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);
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP