在 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);

更新於: 2020 年 5 月 13 日

2K+ 瀏覽量

啟動你的 事業

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.