如何使用模型架构创建环回远程方法?

时间:2015-03-05 01:49:55

标签: node.js loopbackjs

我目前正在构建一个环回应用程序,它只有一个名为Phone的模型。这是我的common/models/phone.js代码:

module.exports = function(Phone) {

  // Return a random phone's data.
  Phone.random = function(callback) {
    return callback(null, {
      id: '12345',
      number: '+18182179222',
      name: 'Randall Degges'
    });
  };

  Phone.remoteMethod('random', {
    description: 'Return a random phone.',
    accepts: [],
    returns: [
      //{ type: 'object', root: true, description: 'return value' },
      { arg: 'id', type: 'string', description: 'phone id', required: true, root: true },
      { arg: 'number', type: 'string', description: 'phone number', required: true, root: true },
      { arg: 'name', type: 'string', description: 'phone name', required: false, root: true }
    ],
    http: {
      verb: 'get', path: '/random',
    }
  });

};

当我在端口3000上启动我的API资源管理器,并查看我新创建的random API调用时,我看到以下内容:

Random API Call in Loopback Explorer

如上所示,我的“模型架构”是空的。 Booo!

我想要完成的内容类似于内置的API方法,它们看起来像这样:

Working API Call in Loopback Explorer

如上所示,“Model Schema”显示了API调用的实际输出结果。

我正在试图弄清楚如何使用我的远程端点完成此操作,但到目前为止还没有运气。

欢迎任何建议。

奖励积分:有没有办法简单告诉Loopback我的返回值 只是一个已定义的模型?在我的情况下,我所做的只是返回一个现有的Phone模型,所以让Loopback知道这一点并让它自动生成相应的文档会很好。

谢谢!

2 个答案:

答案 0 :(得分:13)

尝试使用以下命令运行您的应用:

  

DEBUG = loopback:explorer:routeHelpers node。

您将能够看到使用API​​方法中构建的返回选项

您必须使用returns参数中的common / models目录中定义的模型结构,如

  

返回:[{arg:"data",type:"Mymodels",root:true}]

答案 1 :(得分:0)

获得奖励积分:

当您调用'$scope' is not defined. 时,您必须指定要返回的架构的模型:

remoteMethod()

额外:如果想要的架构属于另一个型号,您也必须要求它,以避免“未定义”错误:

returns: { arg: 'data', type: 'Phone', root: true}