如果存在则更新记录,否则在环回中根据 id 创建新记录

update record if exist else create new record based by id in loopback

我正在尝试更新记录(如果存在),否则我想创建新记录, 我尝试了 findById 函数,但是当我尝试在其中添加新记录时出现此错误: create() 不是函数 .. 这是我的代码:

Userpost.isMyPost = function (data , req, cb) {
  Userpost.findById(data.id, (err, Userpost) => {
    if (!err && Userpost) {
      Userpost.create({
        U_ID: "1" , 
        imageUrl: "ss" , 
        userLike : "aa" , 
        sharedFrom: "ss", 
        isDeleted : false , 
        isFav : true
      }, function(err, Userpost) {
        cb(err , Userpost);
      });
    } else {
      cb (err, {});
    }
  });
}

看起来你已经用返回的数据值覆盖了 Userpost 模型,所以你没有 .create() 和所有其他方法。

尝试用一些不同的变量名称替换 (err, Userpost) => ...,例如(err, response) => .... 在你的 findById 回调函数中:

示例:

Userpost.isMyPost = function (data , req, cb) {
  Userpost.findById(data.id, (err, response) => {
    if (!err && response) {
      Userpost.create({
        U_ID: "1" , 
        imageUrl: "ss" , 
        userLike: "aa" , 
        sharedFrom: "ss", 
        isDeleted: false , 
        isFav: true
      }, function(err, response) {
        cb(err, response);
      });
    } else {
      cb(err, {});
    }
  });
}