如何在环回中挂起持久化模型后获取自动ID?

时间:2017-03-06 09:33:12

标签: postgresql loopbackjs strongloop

我有一些使用looback-connector postgresql从postgresql db生成的模型。这些模型的Id列是postgresql db的自动递增整数列。

1)我在其中一个持久模型上添加了一个远程方法,其中我执行简单更新或插入(upsert。

 Car.CreateOrUpdateCar = function (carobj, req)     {
    Car.upsert(Carobj, function (err, Car) {
        if (err)
            console.log(err);
        else {
            req(err, Car);
        }
    });
};

2)在这个远程方法之后添加了一个远程钩子来执行。

       Car.afterRemote('CreateOrUpdateCar', function (context, remoteMethodOutput, next) {
//Remaining code goes here
      next();
        });

3)我想在步骤(1)中提到的远程钩子中使用步骤(1)中新插入行的 Id

2 个答案:

答案 0 :(得分:0)

我对postgresql db不太了解。但试试这个

    var carObj;
    Car.CreateOrUpdateCar = function (carobj, req)     {
    Car.upsert(Carobj, function (err, Car) {
        if (err)
          console.log(err);
        else {
          req(err, Car); // Your Car object contains final result after upserting along with Id
          carObj = Car;
        }
     });
   };

现在您可以使用carObj.id获取id,您可以随时随地使用它。我希望这有帮助

答案 1 :(得分:0)

您可以在远程钩子中访问生成的ID,如下所示:

 Car.afterRemote('CreateOrUpdateCar', function (context, remoteMethodOutput, next) {
  var genId = remoteMethodOutput.id || context.result.id;
      next();
        });