2016-08-19 4 views
1

Я хотел бы создать Twitter-подобные модели, но не могу управлять, чтобы сделать его работу: модельLoopbackjs: Последователи и Followees Модель (Twitter-подобная)

пользователя до сих пор:

{ 
    "name": "NsUser", 
    "base": "User", 
... 
    "relations": { 
     "followers": { 
      "type": "hasMany", 
      "model": "User", 
      "through": "Follow", 
      "foreignKey": "followerUserId" 
     }, 
     "followees": { 
      "type": "hasMany", 
      "model": "User", 
      "through": "Follow", 
      "foreignKey": "followeeUserId" 
     } 
    } 
} 

модель Следуйте до сих пор:

{ 
    "name": "Follow", 
    "base": "PersistedModel", 
... 
    "relations": { 
    "followee": { 
     "type": "belongsTo", 
     "model": "NsUser", 
     "foreignKey": "followeeUserId" 
    }, 
    "follower": { 
     "type": "belongsTo", 
     "model": "NsUser", 
     "foreignKey": "followerUserId" 
    } 
    } 
} 

Затем я добавляю отношения в модели Follow:

{ 
    "created": "2016-08-19T09:23:18.175Z", 
    "id": "57b6d0068d55e5368538c8f4", 
    "followeeUserId": "578f7ad2ba0bfc40d78ef985", 
    "followerUserId": "5790bb3172e2738deb7532ee" 
    } 

Но не может получить результат в http://0.0.0.0:3008/api/NsUsers/5790bb3172e2738deb7532ee/followers Вот авария:

{ 
    "error": { 
    "name": "Error", 
    "status": 500, 
    "message": "Relation \"user\" is not defined for Follow model", 
    "stack": "Error: Relation \"user\" is not defined for Follow model\n at processIncludeItem .... 
    } 
} 

Я копнуть и нашел там была проблема похожа здесь: https://github.com/strongloop/loopback-datasource-juggler/pull/394

Но, кажется, мне нужно рамочную-назад- DataSource-жонглер> = 2.18.0, но я бегу

npm update loopback-datasource-juggler 
npm -v loopback-datasource-juggler 

Он говорит мне: 2.10.1

Возможно, это единственная проблема (действительно ли я получаю последнюю версию?), Или, может быть, это моя модель, которая не так?

ответ

1

Вы определили отношение модель ошибочно. Follow модель имеет отношение к NsUser, но в NsUser, вы определили отношение к user.

Пожалуйста, измените как это:

"relations": { 
     "followers": { 
      "type": "hasMany", 
      "model": "NsUser", 
      "through": "Follow", 
      "foreignKey": "followerUserId" 
     }, 
     "followees": { 
      "type": "hasMany", 
      "model": "NsUser", 
      "through": "Follow", 
      "foreignKey": "followeeUserId" 
     } 
    } 
+0

Спасибо! Жаль, что я не был в состоянии видеть это ... я, наконец, закончилась "последователей": { "типа": "hasMany", "модели": "NsUser", "ForeignKey": "followeeUserId" , "через": "Follow", "keyThrough": "followerUserId" }, "followees": { "типа": "hasMany", "модель": "NsUser", "ForeignKey": «followerUserId», «через»: «Следуйте», «keyThrough»: «followeeUserId» } – F3L1X79

1

Этот вопрос представляет собой проблему с NPM, а не проблему с петлей. На странице npm для loopback-datasource-juggler показана последняя версия 2.49.0.

Я предполагаю, что проблема связана с вашим (или, возможно, с другим модулем) package.json файлом, описывающим зависимость для этого. Сначала попробуйте заглянуть в свой файл package.json.

+0

Всего packages.json было хорошо, я предполагаю, что там была ошибка с НПМ -v ... – F3L1X79