如何在 html 文件中包含 nodejs 模块

How to include nodejs modules in html files?

本文关键字:包含 nodejs 模块 文件 html      更新时间:2023-09-26

首先我是nodejs的新手,其次是我的问题。如何在 html 中加载的 js 中包含 nodejs 网络模块?

我的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文件时,它给出了以下错误

捕获的引用错误:未定义要求

而如果我使用命令行直接在 nodejs 中运行 js 文件(如这个"节点示例.js),那么它可以正常工作。

提前谢谢。

NodeJS在服务器上运行。HTML 文件中的脚本在客户端上运行。不要在客户端上包含服务器代码。相反,您将消息从客户端发送到服务器代码,并解释结果。因此,执行此操作的标准方法是在服务器上定义一个资源来生成要生成的内容或数据,并从客户端检索该内容或数据,仅使用正常的页面加载或"ajax"(尽管现在大多数人不使用"ajax"中的"x"[XML][有些人仍然这样做], 他们使用 JSON、文本或 HTML)。

澄清@T.J.Crowder在评论中所说的话:你想做的事情是不可能的。

NodeJS是一个服务器端框架。你在 NodeJS 中编写的 Javascript 是在服务器上执行的。您为 HTML 页面编写的 Javascript 在客户端上执行。客户端和服务器不能直接调用对方的方法。这就是 AJAX 和其他异步客户端-服务器通信技术的用途。

"require未定义"的原因是"require"是node.js的关键字,但它不是浏览器中的关键字。

Node.js是javascript的虚拟机

(或运行上下文),浏览器也是javascript的虚拟机。但它们有很大的不同。您不能在另一个虚拟机中使用一个虚拟机中支持的关键字,就像您可以在 Windows 和 Linux 上使用 C/C++ 一样,但有许多库仅在 Linux 中或仅在 Windows 中使用。