如果对象已经存在,我应该怎么做才能阻止帖子请求发布新对象?
我已经粘贴了我的代码和json对象。我已经尝试了next();
但它不起作用,无论如何都会创建一个带有其他id的重复对象。我正在使用before
beforePostTransaction函数来检查产品是否已存在。该请求包含
index.js
const Transaction = require('./transactions/TransactionModel');
const TransactionCTL = require('./transactions/TransactionController');
Transaction.before('post', TransactionCTL.beforePostTransaction);
Transaction.register(router, '/transactions');
TransactionController.js
const beforePostTransaction = (req, res, next) => {
var id = req.body.id;
Transaction.findById(
id,
(err, data)=>{
if (!data){
next();
}
else{
var store = data.store;
store = JSON.stringify(store);
store = store.replace(/\"/g, "");
if(store !== req.body.store){ //update the whole object
next();
}
else{
//do what?
}
}
});
res.sendStatus(409);
}
json对象
[{
"_id": "596db06849822a13c97ba3f9",
"store": "596b088131ea400490897c50"
}]
答案 0 :(得分:0)
不确定你的型号是什么。但如果它是猫鼬,你可以使用方法
.findOneAndUpdate(query,
update,
{upsert: true},
function (error, result) {
if (!error) { //if you need to do something else
}
});
更新是您的对象。如果不存在,它将创建新项目,如果存在则更新它。