环回 return PU/UPSERT 上的现有记录

Loopback return an existing record on PU/UPSERT

我有以下 PostGreSQL 位置 table:

--------------------
| ID | Name        |
--------------------
| 1  | Kitchen     |
--------------------
| 2  | Bedroom1    |
--------------------

ID 是顺序 PQ,Name 具有唯一约束。

Locations.json 名字 属性 有

"index": {
    "unique": true
 },

并且Locations.js包括Location.validatesUniquenessOf('Name');

如果我 运行 PUT 反对 Locations 与 JSON { "Name":"Kitchen" } 我得到一个 422 验证错误,这很好,但理想情况下我会同时获得现有的 Kitchen 记录(或至少是 ID)。我可以通过一个 REST 调用在环回框架中执行此操作吗?

您可以使用自定义远程方法扩展 API,然后在您的模型上使用 findOrCreate 方法 return 找到或创建实例作为响应。

http://docs.strongloop.com/display/public/LB/Remote+methods#Remotemethods-Howtodefinearemotemethod

http://docs.strongloop.com/display/public/LB/PersistedModel+class;#persistedmodel-findorcreate

Location.findOrCreate(
  {where: {"name": "Kitchen"}},
  data,
  function(err, instance){
    if (err){
      console.log(err);
    }
    console.log(instance); //this will be your found or created instace based on query
  });