首页 > 解决方案 > 如何使用将多个值传递给服务器使用 node.js 标记和访问

问题描述

我在一个简单的博客网站上工作,我想要一个输入标签将两个数据发送到后端。这包括博文的标题和博文的 ID。我已经使用猫鼬来设置数据库。如何使用输入标签传递多个值。

我试过使用

<input type="hidden" name="button" value="*any-value*" data-value="*other-value*"></input>

但是如何使用 node.js 在后端访问这些数据。我也尝试过使用 a 标签

<a href="#" name="a-button" data-value="*some-value*">Subimt</a>

但这不起作用。请帮忙。

标签: javascripthtmlcssnode.jsmongoose

解决方案


创建一个调用 JavaScript 函数提交的表单元素,如下所示:

<form id="form" action="javascript:void(0)">
    <input id="data" type="hidden" name="button" value="*any-value*" data-value="*other-value*" />
    <button type="submit">Submit</button>
</form>

然后在脚本中定义函数:

<script type="text/javascript">
    function submit() {
        var data = document.getElementById('data');
        var value = data.value;
        var dataValue = data.getAttribute('data-value');
        fetch('/api/blog', {
            method: 'GET',
            headers: {
                Accept: 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                value,
                dataValue
            })
        });
    }
    var form = document.getElementById('form');
    form.addEventListener('submit', submit);
</script>

然后解析服务器上的数据以处理此问题,使用(如果您使用的是 Express):

app.get('/api/blog', (req, res) => {
    const { value, dataValue } = req.body;
    console.log(value, dataValue);
});

推荐阅读