繁体   English   中英

将变量从JavaScript传递到Node.js

[英]Pass variables from JavaScript to Node.js

我有一个像这样的简单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>

我的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"

在提交表单之前,请使用javascript定位隐藏的输入并设置值:

的HTML

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

JS

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

另外,在您的Node服务器上,您需要访问req.body.chat您想要的body属性对应于输入元素的name

您需要使用输入name属性。 该输入必须在form内部,以便您可以在Node中捕获它:

<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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM