我已經有了一個使用pg-promise作爲Postgres的節點上的API,這很好,但是我在考慮如何修改PUT語句來處理輸入中的NULLS好一點。跳過pg-promise的更新列
以下是PUT語句代碼:
//UPDATE a single record
function updateRecord(req, res, next) {
db.none('update generic1 SET string1=$1,' +
'string2=$2,' +
'string3=$3,' +
'string4=$4,' +
'string5=$5,' +
'string6=$6,' +
'integer1=$7,' +
'integer2=$8,' +
'integer3=$9,' +
'date1=$10,' +
'date2=$11,' +
'date3=$12,' +
'currency1=$13,' +
'currency2=$14' +
'WHERE id = $15',
[req.body.string1,
req.body.string2,
req.body.string3,
req.body.string4,
req.body.string5,
req.body.string6,
parseInt(req.body.integer1),
parseInt(req.body.integer2),
parseInt(req.body.integer3),
req.body.date1,
req.body.date2,
req.body.date3,
parseInt(req.body.currency1),
parseInt(req.body.currency2),
parseInt(req.params.id)])
.then(function(){
res.status(200)
.json({
'status': 'success',
'message': 'updated one record'
});
})
.catch(function(err){
return next(err);
});
}
現在這個語句的工作,但如果我在NULLS傳遞給下一次更新也將刪除現有的值。例如,如果我想只更新string1和date2,我必須發送整個json對象或將所有其他值設置爲NULL。
有沒有更好的方法來處理這個問題?我應該使用PATCH動詞嗎?
太棒了!感謝維塔利:) –
@ adam.sellers查看有關最新版本的更新;) –
@adam。賣家另一個更新已被添加 - 選項'emptyUpdate';) –