在节点上如何执行插入如果不存在

我的restapi调用请求这个函数在Postgre-sql上创buildfirebase标记。
但是,我意识到只要令牌刷新,就会为同一个用户添加一个新行。
我如何做到这一点,以便它将执行一个插入,如果它存在和更新,如果它不。
我已经尝试了冲突更新,但它不起作用。

代码在这里:

function createUserToken(req, res, next) { var userid = req.user.email; db.none('insert into fcmdb(userid, token)'+ 'values($1, $2) on conflict update', [userid,req.body.token]) .then(function () { res.status(200) .json({ status: 'success', message: 'Inserted token' }); }) .catch(function (err) { return next(err); }); } 

这是因为插入查询的帮助下直接插入数据。 你应该做的是首先你需要检查在userId的帮助下,你的数据库中存在的是什么用户ID是的,那么你需要更新其他只是插入就像你在做

要么

你在做的方式可以使用这个例子作为参考( 使用DUPLICATE KEY UPDATE insted of on conflict update )INSERT INTO table(a,b,c)VALUES(1,2,3)ON DUPLICATE KEY UPDATE c = c + 1;