Maison  >  Article  >  interface Web  >  Comment connecter HTML à Nodejs

Comment connecter HTML à Nodejs

PHPz
PHPzoriginal
2023-05-13 17:10:381418parcourir

Avec le développement rapide des applications Web ces dernières années, Node.js (un environnement d'exécution JavaScript léger) a également été largement utilisé pour développer diverses applications côté serveur. HTML est le langage principal du Web, alors comment connecter HTML au backend Node.js ? Cet article y répondra une par une pour vous.

Afin de mieux comprendre la relation entre HTML et Node.js, vous devez d'abord comprendre comment fonctionne HTML. HTML est le langage de base pour la conception de pages Web. Il décrit la structure et la mise en page de la page à travers un grand nombre de balises (tags), et affiche le contenu à travers divers fichiers multimédias (tels que des images, des sons et des vidéos). Node.js est une technologie de serveur back-end basée sur le langage JavaScript, qui peut gérer les requêtes Web et renvoyer des pages Web au client. Lorsqu'un client demande une page Web, Node.js récupère les données requises de la base de données principale, puis les insère dynamiquement dans le code HTML pour générer une page Web dynamique.

Afin d'établir la connexion entre HTML et Node.js, certains frameworks et bibliothèques doivent être utilisés pour réduire la charge de travail. Voici quelques frameworks et bibliothèques couramment utilisés :

1.Express.js

Express.js est un framework d'application Web basé sur Node.js, qui peut aider les développeurs à créer rapidement des applications Web évolutives. Il fournit une série d'API pour faciliter le développement d'applications.

Ce qui suit est un exemple simple d'utilisation d'Express.js pour connecter HTML et 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!');
});

Dans le code ci-dessus, la fonction express() crée une instance d'application Express et l'attribue à variable d'application. La fonction app.use() spécifie que le serveur Web héberge des fichiers statiques (tels que des fichiers CSS et JavaScript) dans le répertoire public. La fonction app.get() spécifie que lorsque le chemin de l'URL est /, le fichier index.html est envoyé depuis le serveur. La fonction app.listen() lie l'application au port 3000. express()函数创建一个Express应用程序实例,并将其赋值给app变量。app.use()函数指定Web服务器将静态文件(如CSS和JavaScript文件)托管在public目录下。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模板并传递设置name变量为"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服务器,并在客户端与服务器之间建立连接时记录日志。当接收到客户端发来的chat message消息时,服务器将该消息广播给所有当前连接的客户端。客户端使用socket.io.js

2.Handlebars.js

Handlebars.js est un moteur de modèles populaire qui peut générer du HTML basé sur des pages et des données. Il s'intègre très bien au framework Express.js pour Node.js, avec lequel vous pouvez connecter HTML et Node.js plus facilement. 🎜🎜Ce qui suit est un exemple simple d'utilisation de guidons.js pour connecter HTML et Node.js : 🎜rrreee🎜Dans le code ci-dessus, la fonction exphbs() renvoie une instance de guidons.js et lui attribue à app.engine()Le premier paramètre de la fonction. La fonction app.set() spécifie le moteur de modèle comme Handles.js. La fonction app.get() restitue le modèle home.handlebars lors de l'accès au chemin racine et transmet la variable de nom à "World". 🎜🎜3.Socket.IO🎜🎜Socket.IO est une bibliothèque pour la communication en temps réel entre Node.js et le navigateur. Il permet une communication bidirectionnelle entre le serveur et le client, permettant une communication en temps réel entre HTML et Node.js. 🎜🎜Ce qui suit est un exemple simple d'utilisation de Socket.IO pour connecter HTML et Node.js : 🎜🎜Code serveur : 🎜rrreee🎜Code client : 🎜rrreee🎜Dans le code ci-dessus, le code du serveur utilise socket.io crée un serveur Socket.IO et enregistre lorsqu'une connexion est établie entre le client et le serveur. Lors de la réception d'un message <code>message de discussion d'un client, le serveur diffuse le message à tous les clients actuellement connectés. Le client utilise la bibliothèque socket.io.js pour se connecter au serveur Socket.IO, les données de soumission du formulaire sont envoyées au serveur Socket.IO et les messages diffusés sont automatiquement reçus via le client Socket.IO. . 🎜🎜En résumé, la connexion entre HTML et Node.js peut offrir de la flexibilité et du temps réel dans le développement d'applications Web. Bien que l'utilisation de frameworks et de bibliothèques puisse faciliter la connexion, il est important d'avoir une compréhension approfondie du HTML, de Node.js et du développement Web. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn