首页 > 解决方案 > 如何在环回中访问另一个模型的功能?

问题描述

我有两个模型 Place 和 Tag。我在 tag.js 中创建了 creteTag() 远程方法,我想在 place.js 中访问这个函数。

标签.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);
     });
};

地方.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);
     });
  };
};

我想发布我想在我的数据库中看到单独集合的标签。

标签: node.jspostloopbackjsloopback

解决方案


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
});

推荐阅读