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

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

我的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是未定义的

而如果我使用命令行直接在nodejs(像这个“node sample.js”)中运行js文件,那么它工作正常。

提前致谢。

NodeJS在服务器上运行。 HTML文件内的脚本在客户端上运行。 您不包括在客户端上的服务器代码。 而是将消息发送到客户端的服务器代码,并解释结果。 因此,标准的方法是在服务器上定义一个资源,用于生成要生成的内容或数据,并使用普通的页面加载或“ ajax ”从客户端检索内容或数据(尽pipe这些日子,大多数人不使用“ajax”中的“x”[XML](他们仍然使用JSON ,文本或HTML)。

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

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

“require is not defined”的原因是因为“require”是node.js的关键字,但它不是浏览器中的关键字。

Node.js是一个虚拟机(或运行上下文)的JavaScript,浏览器也是一个虚拟机的JavaScript。 但他们是完全不同的。 在另一台虚拟机中,不能使用一台虚拟机中支持的关键字,就像您可以在Windows和Linux上使用C / C ++一样,但是有很多库只能在Linux或Windows中使用。