2017-10-11 52 views
-1

我正在爲學校構建網絡服務器,但我遇到了一些問題。我正在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在客戶端執行,Nodejs在服務器端執行。 – 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請求由客戶端發起(在你的網頁代碼中),然後服務器有一個被調用的資源並提供某種HTTP響應。 –