如何使用模型模式创build环回远程方法?

我目前正在构build一个回送应用程序,它只有一个名为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', } }); }; 

当我拉起我的API浏览器在端口3000,并查看我新创build的random API调用,我看到以下内容:

在Loopback Explorer中调用随机API

正如你可以看到上面,我的“模式架构”是空的。 Booo!

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

在Loopback Explorer中工作的API调用

正如你在上面看到的,“Model Schema”显示了API调用的实际输出结果。

我想弄清楚如何用我的远程端点来完成这个任务,但到目前为止没有运气。

任何build议,欢迎。

奖金点 :有没有办法简单地告诉回送,我的返回值只是一个已经定义的模型? 在我的情况下,我所做的只是返回一个现有的Phone模型,所以最好让Loopback以某种方式知道它并自动生成相应的文档。

谢谢!

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

DEBUG = loopback:explorer:routeHelpers节点。

你将能够看到什么返回选项使用德内置API方法

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

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

对于你的奖励积分:

当您调用remoteMethod()您必须指定要返回的模式的模型:

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

额外:如果想要的模式是另一个模型,你也必须要求它,以避免'未定义'的错误:

 module.exports = function(Model1) { var app = require('../../server/server'); Model1.someMethod = function(args, cb) { var Model2 = app.models.Model2; [...] }