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

On node how to you perform an insert if doesn't exists

我的休息 api 调用 Put 请求到此函数以在 Postgre-sql.
上创建 firebase 令牌但是,我意识到每当令牌刷新时都会有一个新行为同一用户添加。
我如何才能让它在存在时执行插入,在不存在时执行更新。
我已经尝试过冲突更新,但它不起作用。

代码在这里:

function createUserToken(req, res, next) {
  var userid = req.user.email;
  db.none('insert into fcmdb(userid, token)'+
    'values(, ) 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) 值 (1,2,3) 关于重复密钥更新 c=c+1;