假设我们的表中有 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/