1. ホーム
  2. http

[解決済み] NodejsでユーザーのブラウザのURLを別のページにリダイレクトするには?

2022-12-12 17:24:30

質問

私が書こうとしているアプリケーションでは、メインページ( http://localhost:8675 ) には、以下のようなフォームがあります。

<form action='/?joinnew' method='post'>
  <button>Start</button>
</form>

以下はserver.jsのコードです。

http.createServer(function(request, response) {
  var root = url.parse(request.url).pathname.split('/')[1];
  if (root == '') {
    var query = url.parse(request.url).search:
    if (query == '?joinnew') {
      var newRoom = getAvaliableRoomId(); // '8dn1u', 'idjh1', '8jm84', etc.
      // redirect the user's web browser to a new url
      // ??? How to do.  Need to redirect to 'http://whateverhostthiswillbe:8675/'+newRoom
...
}}}

ホストアドレスが変わる可能性があるので、ホストアドレスを知らなくてもいい方法があればいいなと思います。

http' オブジェクトは通常の require('http') であり、require('express') ではありません。

どのように解決するのですか?

リダイレクトを行うには、リダイレクトステータス(301は永久的なリダイレクト、302はquot;this currently lives on ..."リダイレクト、307は意図的な一時的リダイレクト)を送信する必要があります。

response.writeHead(301, {
  Location: `http://whateverhostthiswillbe:8675/${newRoom}`
}).end();