gpt4 book ai didi

javascript - Postgres 更新插入的值而不是所有列

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:45 24 4
gpt4 key购买 nike

假设我们的表中有 10 列,我们希望仅输入 1 个值来更新表列,并且不更改剩余值。

所以只有我们的新值会更新,不必要的值不会为 Null ...?

我问这个是因为我正在使用 This code我想根据我编辑的内容发送放置请求...

我正在使用此查询将来自 body(react) 的请求放入 Node postgres ...

router.put("/user/:nationalcode", (req, res) => {
const cols = [
req.body.nationalcode,
req.body.stockcode,
req.body.firstname,
req.body.lastname,
req.body.isenable,
req.body.isonline,
req.body.detail,
req.body.birthdate,
req.body.archive,
req.body.offlineusername
];

db.query(
`UPDATE users SET nationalcode=$1, stockcode=$2, firstname=$3, lastname=$4, isenable=$5, isonline=$6, detail=$7, birthdate=$8, archive=$9, offlineusername = $10 WHERE nationalcode = ${req.params.nationalcode}`,
cols,
function(err, result) {
if (err) {
console.log("Error. Updating : %s ", err);
}
}
);
console.log(req.body);
});

最佳答案

您想从 req.body 对象中删除空值,请在构建 cols 数组之前使用此函数删除它:

function strip(obj) {
for (var prop in obj) {
if (obj[prop] === null || obj[prop] === undefined) {
delete obj[prop];
}
}
}

因此,定义该函数并将其用作代码的第一行:

var cols = Object.values(strip(req.body));

关于javascript - Postgres 更新插入的值而不是所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60348514/

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