簡體   English   中英

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

[英]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”),那么它可以正常工作。

提前致謝。

NodeJS在服務器上運行。 HTML文件中的腳本在客戶端上運行。 您不在客戶端上包含服務器代碼。 而是從客戶端向服務器代碼發送消息,並解釋結果。 因此,執行此操作的標准方法是在服務器上定義生成要生成的內容或數據的資源,並使用正常頁面加載或“ ajax ”從客戶端檢索該內容或數據(盡管這些天,大多數人不使用“ajax”中的“x”[XML] [有些人仍然這樣做],他們使用JSON ,文本或HTML)。

澄清@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM