2017-10-11 18 views
-1

私は学校用Webサーバーを構築していますが、私はいくつかの問題にぶち当たっています。私はubuntu仮想マシン上で実行しています。しかし、JSコード内の変数を取得しようとすると、「文書が定義されていません」ということが続きます。私はこの仕事をするために私のHTMLで何らかの種類のスクリプトを実行する必要がありますか?前もって感謝します。 これは私のJSとHTMLコードです:htmlからjavascriptに変数を渡すことができません

var http = require('http'); 
var fs = require('fs'); 
var varRAM = document.getElementByName("ram").value; 
var varDisk = document.getElementByName("disk"); 
var varCpu = document.getElementByName("cpu"); 

http.createServer(function (req, res) { 
fs.readFile('/home/danesh123/js/test.html', function(err, data) { 
res.writeHead(200, {'Content-Type': 'text/html'}); 
res.write(data); 
res.end(""); 
console.log('server running at shitty port {}'.format(varRam)) 
}); 
}).listen(8080, '172.19.0.1'); 



<html> 
<body> 
<h1>HEAD</h1> 
<form action="/hello.js"> 
<p>ram</p> 
<input name="ram" type="text" > 
<p>disk</p> 
<input name="disk" type="text"> 
<p>cpu</p> 
<input name="cpu" type="text" > 
<br><br> 
<input type="submit" value="submit"> 
</form> 

</body> 
</html> 
+0

あなたはサーバーとクライアントの違いを理解していますか? NodeJSコードとHTMLはどこで実行されますか? – dfsq

+0

htmlがクライアントで実行され、ノードjがサーバー側で実行されます。 – codenerd123

答えて

0

これらの行:

var varRAM = document.getElementByName("ram").value; 
var varDisk = document.getElementByName("disk"); 
var varCpu = document.getElementByName("cpu"); 

はあなたのNode.jsのコードではなく、クライアントの一部としてサーバーに実行されています。クライアントはサーバではなくdocumentオブジェクトが存在する場所です。

+0

クライアントからサーバーに情報を渡す最も良い方法は何ですか? – codenerd123

+0

フォームを投稿しますか? – epascarello

+0

「最良の」方法はありませんが、通常、クライアントはAJAX要求をサーバーに送信してデータを送信し、サーバーはそのデータで応答します。 AJAXリクエストはクライアント(Webページコード内)によって開始され、サーバーは呼び出され、何らかのHTTP応答を提供するリソースを持っています。 –

関連する問題