gpt4 book ai didi

javascript - Node.js Express POST 只改变了路由器的输入

转载 作者:行者123 更新时间:2023-11-30 22:03:58 27 4
gpt4 key购买 nike

情况是这样的——我有一个使用 MySQL 数据库的 node.js + Express 应用程序。我从表中读取数据(例如员工)。我以 HTML 形式显示必要的数据。所以员工姓名、电子邮件、电话、地址等。

在表单中,用户可以更新所有或选定的字段并点击提交以更新记录。

在更新时,我调用我的路由器并使用 body-parser 读取表单输入:

<form role="form" action="/employee/update" method="post">
Name : <input type="text" name="ename"/>
Email : <input type="email" name="empEmail"/>
.
.
.
</form>

现在用户可以更改所有输入或仅更改一个。但是,当我执行 sql 更新时,我只想更新已更改的字段。

我目前的解决方案

我现在所做的是,我在表单中有一个隐藏的输入,用于存储用户更改的任何输入的名称。因此,在我的公共(public) js 文件中,输入的 jquery 代码 onchange 读取已更改输入的“名称”属性并创建一个逗号分隔的字符串,然后将其作为值分配给隐藏的输入。

因此,如果用户更改姓名和电子邮件,隐藏的输入将如下所示:

<input type="hidden" name="FormHiddenInput" value="ename,empEmail"/>

所以当用户点击提交时,在我的路由器上我只是这样做:

var fieldName = req.body.FormHiddenInput;

然后我拆分它并提取更改的各个字段的名称并再次对它们执行 req.body。

这个过程工作得很好,但我不喜欢它。它需要太多的代码和 for 循环。

有没有另一种方法我只能直接在路由器中获取表单中实际更改的输入/文本区域/选择等的名称?

最佳答案

您应该更新整行。它减少了代码的冗长和复杂性,并且开销可以忽略不计。

mysql UPDATE statement - overhead for same values?

关于javascript - Node.js Express POST 只改变了路由器的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42374597/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com