web-dev-qa-db-ja.com

nodejsモジュールをhtmlファイルに含める方法は?

まず第一に、私は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ファイルを実行すると、以下のエラーが発生します

Uncaught ReferenceError:requireが定義されていません

一方、コマンドラインを使用してjsファイルをnodejs(この「nodesample.js」など)で直接実行すると、正常に機能します。

前もって感謝します。

13
Farooq Arshed

NodeJSはサーバーで実行されます。 HTMLファイル内のスクリプトはclientで実行されます。クライアントにサーバーコードを含めません。代わりに、クライアントからサーバーコードにメッセージを送信し、結果を解釈します。したがって、これを行う標準的な方法は、生成するコンテンツまたはデータを生成するサーバー上のリソースを定義し、通常のページ読み込みまたは「 」を使用して、クライアントからそのコンテンツまたはデータを取得することです。 ajax "(最近では、ほとんどの人が「ajax」で「x」[XML]を使用していませんが、 [〜#〜] json [を使用しています。 〜#〜] 、テキスト、またはHTML)。

15
T.J. Crowder

@ T.J.Crowderがコメントで言ったことを明確にするために:あなたがやろうとしていることは不可能です。

NodeJSはサーバーサイドフレームワークです。 NodeJSで記述したJavascriptはサーバー上で実行されます。 HTMLページ用に作成したJavascriptは、クライアントで実行されます。クライアントとサーバーは、互いのメソッドを直接呼び出すことはできません。これは、AJAXおよびその他の非同期クライアントサーバー通信技術が使用される目的です。

4
Travis Webb

「requireが定義されていない」理由は、「require」がnode.jsのキーワードであるが、ブラウザのキーワードではないためです。

Node.jsはjavascriptの仮想マシン(または実行中のコンテキスト)であり、ブラウザーはjavascriptの仮想マシンでもあります。しかし、それらは大きく異なります。 WindowsとLinuxの両方でC/C++を使用できるように、ある仮想マシンでサポートされているキーワードを別の仮想マシンで使用することはできませんが、LinuxのみまたはWindowsのみのライブラリが多数あります。

1
lyonplus