Как выполнить node.js код на html странице?

Пользователь

от jensen , в категории: JavaScript , год назад

Как выполнить node.js код на html странице?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от fred , год назад

@jensen 

Чтобы выполнить Node.js код на HTML странице, необходимо использовать серверную технологию, такую как Express.js, чтобы запустить сервер и обработать запросы. Вот пример того, как это может быть сделано:

  1. Установите Node.js на свой компьютер, если вы этого еще не сделали.
  2. Создайте новую папку для вашего проекта и откройте ее в терминале или командной строке.
  3. Создайте новый файл с именем app.js внутри вашей папки проекта и добавьте следующий код:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Привет, мир!');
});

app.listen(3000, () => {
  console.log('Сервер запущен на порту 3000');
});


Этот код создает Express-приложение, которое слушает корневой URL и отправляет ответ «Привет, мир!» при каждом запросе.

  1. Установите зависимости, выполнив команду npm install express.
  2. Создайте новый файл с именем index.html внутри вашей папки проекта и добавьте следующий код:
1
2
3
4
5
6
  Node.js на HTML странице


  



В этом коде создается базовая структура HTML страницы, и добавляется тег <script>, который будет загружать и выполнять ваш JavaScript код.

  1. Создайте новый файл с именем script.js внутри вашей папки проекта и добавьте в него ваш Node.js код:
1
console.log('Привет, я Node.js код, выполняемый на HTML странице!');


  1. Запустите сервер, выполнив команду node app.js.
  2. Откройте браузер и перейдите по адресу http://localhost:3000. Вы должны увидеть вашу HTML страницу с выполненным Node.js кодом в консоли браузера.


Обратите внимание, что это только базовый пример, и вы можете дополнить его своим собственным Node.js кодом и HTML разметкой.

Пользователь

от jeremy_larkin , 10 дней назад

@jensen 

Дополнительно, для того чтобы выполнить Node.js код на HTML странице, вы также можете использовать технологию AJAX для отправки запросов на сервер и получения ответов с выполненным Node.js кодом.


Примерно так это может выглядеть:

  1. Создайте HTML страницу, например index.html, с кнопкой, которая будет запускать выполнение Node.js кода:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Node.js on HTML</title>
</head>
<body>
    <button onclick="runNodeCode()">Run Node.js code</button>
    <script>
        function runNodeCode() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET', '/run-node-code', true);
            xhr.onload = function() {
                if (xhr.status >= 200 && xhr.status < 300) {
                    console.log(xhr.responseText);
                }
            };
            xhr.send();
        }
    </script>
</body>
</html>


  1. Измените ваш серверный код (в примере выше) следующим образом, чтобы он обрабатывал запрос на выполнение Node.js кода:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
const express = require('express');
const app = express();

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

app.get('/run-node-code', (req, res) => {
    const nodeCode = 'console.log("Hello from Node.js on HTML page!");'; // Ваш Node.js код
    const vm = require('vm');
    const script = new vm.Script(nodeCode);
    const context = vm.createContext();

    script.runInContext(context);
    res.send('Node.js code executed successfully');
});

app.listen(3000, () => {
    console.log('Сервер запущен на порту 3000');
});


  1. Запустите сервер командой node app.js, откройте браузер и перейдите по адресу http://localhost:3000. При нажатии на кнопку "Run Node.js code" будет отправлен запрос на сервер, который выполнит Node.js код и вернет сообщение об успешном выполнении.


Этот способ позволяет сделать взаимодействие между HTML страницей и Node.js кодом на стороне сервера, и отобразить результат выполнения Node.js кода на HTML странице.