【发布时间】:2019-07-12 01:01:33
【问题描述】:
我在使用 PostgreSQL 的 Knex 路由时遇到了一些问题。我正在尝试插入数据库,但仅当该项目不在数据库中时。我正在尝试使用不存在的地方,但它似乎并没有按照我的意愿去做。我很感激你能给我的任何帮助。
谢谢!
app.post('/addcart', (req,res)=>{
const{customer_id, product_id,item_quantity}=req.body;
db('shopping_carts')
.insert({
customer_id:customer_id,
product_id:product_id,
item_quantity:item_quantity
})
.whereNotExists(db.select('*').from('shopping_carts').where('product_id',product_id))
.then(item=>{
console.log(item)
res.json(item)
})
.catch((err)=>{
if(err.column === 'customer_id'){
res.status(400).json({message:err})
console.log('test')
}else{
res.status(500).json({message:err})
// console.log(err.name);
}
})
})
【问题讨论】:
-
正确的解决方案是使
product_id唯一,这样数据库会拒绝插入 -
@slebetman 并没有真正回答问题
-
@Devnetics - 这就是为什么它是评论而不是答案。感谢您更新您的答案以包含它
标签: node.js reactjs express knex.js