Как получить доступ к функции другой модели в loopback? - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть две модели Place и Tag.Я создал удаленный метод creteTag () в tag.js и хотел бы получить доступ к этой функции в place.js.

tag.js

'use strict';
var request = require('request');
module.exports = function(Tag) {
Tag.crateaTag = function(name, callback) {
    request({
        method: 'POST',
        url: 'http://localhost:3000/api/tags',
        body:{
            "name": name
        },
        json: true
     },
     function (error, response,body) {
        if (error || response.statusCode != 200) {
           console.log('Hiba' + error + ' \n' + response);
        }
        callback(error, body);
     });
};

place.js

'use strict';
var request = require('request');
module.exports = function(Place) {
var app = require('../../server/server');
Place.createPlace = function(name, descreption, tagName, callback) {
    var Tag = app.models.Tag; //???

    request({
        method: 'POST',
        url: 'http://localhost:3000/api/tags',
        body:{
            "name": name,
            "descreption": descreption,
            "tag": Tag.createTag(tagName) //???
        },
        json: true
     },
     function (error, response, body) {
        if (error || response.statusCode != 200) {
           console.log('Hiba' + error + ' \n' + response);
        }
        callback(error, body);
     });
  };
};

Я хотел бы опубликовать тег, который хотел бы видеть отдельную коллекцию в моей базе данных.

1 Ответ

0 голосов
/ 15 февраля 2019

В tag.js объявить crateaTag как удаленный метод:

Tag.remoteMethod('crateaTag', {
accepts: {
    arg: 'name',
    type: 'string',
    required: true
    },
    description: "create a tag"
});

В place.js использовать Tag как:

var Tag = app.models.Tag;
Tag.createTag('test', function(){
// do your stuff
});
...