ホームページ >ウェブフロントエンド >フロントエンドQ&A >HTMLをnodejsに接続する方法
近年の 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 サイトの他の関連記事を参照してください。