Как включить модули nodejs в html файлы?

Прежде всего, я новичок в nodejs, а во-вторых, это мой вопрос. Как включить netjs net модуль в js, который загружается в html??

Мой файл js выглядит следующим образом.

net = require('net');
var client = net.createConnection(8000, '192.168.15.59');
client.on('connect',function(){
console.log('Connected To Server');
});
client.on('data',function(data){
console.log('Incoming data:; ' + data);
});

И мой html файл ниже

<html>
<head>
<script type="text/javascript" src="sample.js"></script>
<script type="text/javascript">
function displaymessage(message)
{
alert(message);
client.write(message, encoding='utf8')
}
</script>
</head>

<body>
<form>
<input type="text" id="msg"></input>
<input type="button" value="Click me!" onclick="displaymessage(document.getElementById('msg').value)" />
</form>
</body>
</html>

Когда я запускаю HTML файл в браузере, он дает ошибку ниже

Неподготовлено ReferenceError: require не определен

тогда как если я запустил js файл непосредственно в nodejs (например, этот node sample.js) с помощью командной строки, тогда он отлично работает.

Спасибо заранее.

Ответ 1

NodeJS работает на сервере . Script внутри HTML файлов выполняется на клиенте. Вы не указываете код сервера на клиенте. Вместо этого вы отправляете сообщения на серверный код от клиента и интерпретируете результаты. Таким образом, стандартный способ сделать это - определить ресурс на сервере, который генерирует контент или данные, которые вы хотите сгенерировать, и извлекать это содержимое или данные от клиента, используя только обычную загрузку страницы или " ajax" (хотя в наши дни большинство людей не используют "x" [XML] в "ajax" [некоторые все еще делают], они используют JSON, текст или HTML).

Ответ 2

Чтобы уточнить, что сказал @T.J.Crowder в комментарии: То, что вы пытаетесь сделать, невозможно.

NodeJS - это серверная среда. Javascript, который вы пишете в NodeJS, выполняется на сервере. Javascript, который вы пишете для своих HTML-страниц, выполняется на клиенте. Клиент и сервер не могут напрямую ссылаться друг на друга. Это то, для чего используются AJAX и другие асинхронные методы связи клиент-сервер.

Ответ 3

Причина "require not defined" заключается в том, что "require" - это ключевое слово node.js, но это не ключевое слово в браузере.

Node.js - виртуальная машина (или рабочий контекст) для javascript, браузер также является виртуальной машиной для javascript. Но они очень разные. Вы не можете использовать ключевое слово, поддерживаемое на одной виртуальной машине на другой виртуальной машине, так же, как вы можете использовать C/С++ для Windows и Linux, но есть много библиотек, которые находятся только в Linux или только в Windows.