2014-12-01 65 views
0

我有一個簡單的HTML這樣的:變量傳給Node.js加載

<html> 
    <head><title></title></head> 
    <body> 
     <script>var testVariable = "Hello"</script> 

     <form method="post" action="/"> 
      <input type="submit" name="submit" value="Submit"> 
     </form> 
    </body> 
</html> 

而且我的Node.js是這樣的:

app.post('/', function(req, res) { 
    Console.log(req.body.testVariable); 
}); 

我需要做的是當表單提交testVariable需要傳遞給Node.js函數,我試圖隱藏字段,但我仍然有問題,即:

<input type="hidden" name="chat" value="<script>testVariable</script>"> 

但是,你可以想象它將所有腳本作爲字符串傳遞,而不是變量的值。

有人知道該怎麼做嗎?對不起,如果這是一個愚蠢的問題,我通常是JavaScript和Node.js的新手,我無法在Google中找到答案。

謝謝。

-----編輯------

我的形式,現在看起來是這樣的:

<form method="post" action="/"> 
    <input type="hidden" name="chat" id="hiddenInput" /> 

    <script> 
     var input = document.getElementById('hiddenInput'); 
     input.value = $('#conversation'); 
    </script> 

    <input type="submit" name="submit" value="Submit"> 
</form> 

而且在我的Node.js我打印這樣的對象:

console.log(JSON.stringify(req.body.chat)); 

並且它打印"[object Object]"(包括引號)。

我覈實所收到的變量是一個字符串:

console.log(typeof req.body.chat); // prints "string" 
+0

將數據發佈爲基於輸入元素的name屬性命名的變量,其值由元素值屬性定義。 – 2014-12-01 22:08:55

回答

3

使用JavaScript來針對隱藏的輸入和提交表單之前設置的值:

HTML

<input type="hidden" name="chat" id="hiddenInput" /> 

JS

var input = document.getElementById('hiddenInput'); 
input.value = testVariable.toString(); 

而且,您的節點服務器上,您需要訪問req.body.chat - body p你想要的屬性對應於輸入元素的name

+0

嗨喬丹,似乎它現在傳遞的對象,但作爲一個字符串,如果我打印接收變量它打印''[[對象對象]「'(包括引號),我用新表格更新了問題 – CJ1 2014-12-01 22:43:31

+0

testVariable.toString() – 2014-12-01 23:53:50

+0

現在正在工作,謝謝! – CJ1 2014-12-02 17:58:00

1

您需要使用輸入name屬性。而且輸入必須是內部的form這樣你就可以在節點抓住它:

<input type="hidden" name="testVariable" value="the value string"> 

嘗試:

<form method="post" action="/"> 
     <input type="hidden" name="testVariable" value="the value string"> 
     <input type="submit" name="submit" value="Submit"> 
    </form> 

它應該在節點登錄"the value string"

+0

但問題是我怎樣才能用JavaScript變量 – CJ1 2014-12-01 22:14:15

+0

@ cesar_k13替換硬編碼的字符串「值字符串」,你可以做'document.querySelector('input [name =「testVariable」]')。value = somevariable;並且會將該變量的內容傳遞給將要發佈的輸入。否則AJAX是你可能需要的... – Sergio 2014-12-01 22:16:33