【发布时间】:2021-11-01 17:22:13
【问题描述】:
所以我有这个:
var dates = {
monday: req.body.monday,
tuesday: req.body.tuesday,
wednesday: req.body.wednesday,
thursday: req.body.thursday,
friday: req.body.friday,
saturday: req.body.saturday,
sunday: req.body.sunday
}
console.log(Object.values(dates))
其工作方式是您可以在前端选择一个复选框,无论您是否选中它,所有结果都将发送到后端。现在,我需要对这些结果进行排序,只插入那些被选中的结果(它们没有定义的值,比如下面的数组响应)。
在 for 循环结果集中,i 是这样返回的:
[
'2', undefined,
undefined, undefined,
undefined, undefined,
'1'
]
如您所见,5/7 未定义。所以我有一个标准的插入查询到 SQL,但我只需要插入定义的值。
所以在我的脑海里,我在想insert into clients where Object.values(dates) != undefined,但我知道那是不对的,尤其是因为现在sql 查询的工作方式就是这样,哈哈。
我有这个:
var addclient = "insert into clients (NAME, EMAIL, PHONE_NUMBER, TRAINER_NAME, HOUR, MINUTE, DATES) values ('" + name + "', '" + email + "', '" + phonenumber + "', '" + req.session.username + "', '" + hour + "', '" + minute + "', '" + dates + "')";
我该怎么做?
【问题讨论】:
-
您希望数据库中的字符串将“日期”转换成什么?
-
不清楚您要做什么,例如数据库中
DATES的类型是什么?从您提出的查询中可以假设它是 JSON。查询是否循环执行? -
@Digglit 刚刚更新以解释更多。
-
@developerg1000 目前还不清楚您希望数据库中的最终结果是什么样的。您能发布一个字符串将显示为的示例吗?
-
如果您希望您的数组只包含未定义的值,只需将它们过滤掉即可。
console.log(Object.values(dates).filter(el=> !!el))
标签: javascript sql node.js db2