[英]How to include nodejs modules in html files?
首先,我是nodejs的新手,其次是我的問題。 如何在js中包含nodejs net模塊,在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
而如果我使用命令行直接在nodejs中運行js文件(比如這個“node sample.js”),那么它可以正常工作。
提前致謝。
澄清@TJCrowder在評論中所說的內容:你要做的事情是不可能的。
NodeJS是一個服務器端框架。 您在NodeJS中編寫的Javascript是在服務器上執行的。 您為HTML頁面編寫的Javascript在客戶端上執行。 客戶端和服務器不能直接調用彼此的方法。 這就是使用AJAX和其他異步客戶端 - 服務器通信技術的原因。
“require is not defined”的原因是因為“require”是node.js的關鍵字,但它不是瀏覽器中的關鍵字。
Node.js是javascript的虛擬機(或運行上下文),瀏覽器也是javascript的虛擬機。 但他們卻截然不同。 您不能在另一個虛擬機中使用一個虛擬機支持的關鍵字,就像您可以在Windows和Linux上使用C / C ++一樣,但是有許多庫只能在Linux或僅在Windows中使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.