将变量从JavaScript传递到Node.js

将变量从JavaScript传递到Node.js,javascript,node.js,express,Javascript,Node.js,Express,我有一个简单的HTML,如下所示: <html> <head><title></title></head> <body> <script>var testVariable = "Hello"</script> <form method="post" action="/"> <input type="submit

我有一个简单的HTML,如下所示:

<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>
app.post('/', function(req, res) {
    Console.log(req.body.testVariable);
});
<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>
console.log(JSON.stringify(req.body.chat));
我需要做的是,当表单提交时,
testVariable
需要传递给Node.js函数,我正在尝试使用隐藏字段,但仍然存在问题,即:

<input type="hidden" name="chat" value="<script>testVariable</script>">
并打印出
“[对象]”
(包括引号)

我验证了收到的变量是一个字符串,带有:

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

您需要使用输入
名称
属性。并且该输入必须在
表单中
,以便您可以在节点中捕获它:

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

尝试:



它应该在节点中记录
“值字符串”

在提交表单之前,使用javascript以隐藏的输入为目标并设置值:

HTML

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

另外,在节点服务器上,您需要访问所需的
req.body.chat
-您想要的
body
属性对应于输入元素的
name
属性,数据被作为基于输入元素的
name
属性的变量发布,并使用元素值属性定义的值。但是问题是如何替换硬编码的使用JavaScript字符串“值字符串”variable@cesar_k13你可以做
document.querySelector('input[name=“testVariable”]”),value=somevariable
将该变量的内容传递到将发布的输入中。否则,AJAX就是您可能需要的…嗨,Jordan,看起来它现在正在传递对象,但是作为一个字符串,如果我打印收到的变量,它会打印
“[object object]”
(包括引号),我用新的formtestVariable.toString()更新了这个问题。如何将NodeJ“链接”到HTML?抱歉,如果这听起来像个愚蠢的问题。
<input type="hidden" name="chat" id="hiddenInput" />
var input = document.getElementById('hiddenInput');
input.value = testVariable.toString();