HTMLをnodejsに接続する方法

PHPz
PHPzオリジナル
2023-05-13 17:10:381474ブラウズ

近年の Web アプリケーションの急速な発展に伴い、さまざまなサーバーサイド アプリケーションの開発にも Node.js (軽量の JavaScript 実行環境) が広く使用されています。 HTML は Web の中核となる言語ですが、HTML を Node.js バックエンドに接続するにはどうすればよいでしょうか?この記事では、それらに 1 つずつ答えていきます。

HTML と Node.js の関係をより深く理解するには、まず HTML がどのように機能するかを理解する必要があります。 HTMLはWebページデザインの基本言語であり、ページの構造やレイアウトを多数のタグ(タグ)で記述し、コンテンツをさまざまなメディアファイル(画像、音声、動画など)で表示します。 Node.js は、JavaScript 言語に基づくバックエンド サーバー テクノロジであり、Web リクエストを処理し、Web ページをクライアントに返すことができます。クライアントが Web ページをリクエストすると、Node.js はバックエンド データベースから必要なデータを取得し、それを HTML コードに動的に挿入して動的 Web ページを生成します。

HTML と Node.js 間の接続を実現するには、作業負荷を軽減するためにいくつかのフレームワークとライブラリを使用する必要があります。一般的に使用されるフレームワークとライブラリの一部を以下に示します。

1.Express.js

Express.js は、Node.js に基づく Web アプリケーション フレームワークであり、開発者がスケーラブルな Web アプリケーションを迅速に構築するのに役立ちます。 。アプリケーション開発を容易にする一連の API を提供します。

次は、Express.js を使用して HTML と Node.js を接続する簡単な例です。

const express = require('express');
const app = express();

app.use(express.static('public'));
app.get('/', (req, res) => {
  res.sendFile(__dirname + '/public/index.html');
});

app.listen(3000, () => {
  console.log('App listening on port 3000!');
});

上記のコードでは、express() 関数によってExpress アプリケーション インスタンス を app 変数に割り当てます。 app.use() 関数は、Web サーバーが public ディレクトリで静的ファイル (CSS ファイルや JavaScript ファイルなど) をホストすることを指定します。 app.get() 関数は、URL パスが / の場合に、サーバーから index.html ファイルが送信されることを指定します。 app.listen()この関数は、アプリケーションをポート 3000 にバインドします。

2.Handlebars.js

Handlebars.js は、ページとデータに基づいて HTML を生成できる人気のテンプレート エンジンです。 Node.js の Express.js フレームワークと非常によく統合されており、これを利用して HTML と Node.js をより簡単に接続できます。

次は、Handlebars.js を使用して HTML と Node.js を接続する簡単な例です。

const express = require('express');
const exphbs  = require('express-handlebars');

const app = express();

app.engine('handlebars', exphbs());
app.set('view engine', 'handlebars');

app.get('/', (req, res) => {
  res.render('home', {
    name: 'World'
  });
});

app.listen(3000, () => {
  console.log('App listening on port 3000!');
});

上記のコードでは、exphbs() 関数は、 Handlebars.js インスタンス を作成し、それを app.engine() 関数の最初のパラメーターに割り当てます。 app.set()この関数は、テンプレート エンジンを Handlebars.js として指定します。 app.get()この関数は、ルート パスにアクセスするときに home.handlebars テンプレートをレンダリングし、設定された名前変数を「World」に渡します。

3.Socket.IO

Socket.IO は、Node.js とブラウザー間のリアルタイム通信のためのライブラリです。サーバーとクライアント間の双方向通信が可能になり、HTML と Node.js 間のリアルタイム通信が可能になります。

以下は、Socket.IO を使用して HTML と Node.js を接続する簡単な例です。

サーバー コード:

const express = require('express');
const app = express();
const server = require('http').createServer(app);
const io = require('socket.io')(server);

io.on('connection', (socket) => {
  console.log('a user connected');

  socket.on('disconnect', () => {
    console.log('user disconnected');
  });

  socket.on('chat message', (msg) => {
    console.log('message: ' + msg);
    io.emit('chat message', msg);
  });
});

server.listen(3000, () => {
  console.log('App listening on port 3000!');
});

クライアント コード:

<!DOCTYPE html>
<html>
<head>
  <title>Socket.IO Example</title>
  <script src="/socket.io/socket.io.js"></script>
</head>
<body>
  <ul id="messages"></ul>
  <form id="message-form">
    <input type="text" id="message-input">
    <button type="submit">Send</button>
  </form>
  <script>
    var socket = io();

    var form = document.getElementById('message-form');
    form.addEventListener('submit', function(e) {
      e.preventDefault();
      var msgInput = document.getElementById('message-input');
      socket.emit('chat message', msgInput.value);
      msgInput.value = '';
    });

    socket.on('chat message', function(msg) {
      var messages = document.getElementById('messages');
      var message = document.createElement('li');
      message.innerHTML = msg;
      messages.appendChild(message);
    });
  </script>
</body>
</html>

上記のコードでは、サーバー コードは socket.io モジュールを使用して Socket.IO サーバーを作成し、クライアントとサーバーの間で接続が確立されたときにログを記録します。クライアントから チャット メッセージ メッセージを受信すると、サーバーは現在接続しているすべてのクライアントにメッセージをブロードキャストします。クライアントは socket.io.js ライブラリを使用して Socket.IO サーバーに接続し、フォーム送信データが Socket.IO サーバーに送信され、ブロードキャスト メッセージが Socket.IO を通じて自動的に受信されます。クライアント。

要約すると、HTML と Node.js 間の接続により、Web アプリケーションの柔軟性とリアルタイム開発を実現できます。フレームワークとライブラリを使用すると接続が簡単になりますが、HTML、Node.js、Web 開発について深く理解することが重要です。

以上がHTMLをnodejsに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。