我目前正在构建一个环回应用程序,它只有一个名为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调用时,我看到以下内容:
如上所示,我的“模型架构”是空的。 Booo!
我想要完成的内容类似于内置的API方法,它们看起来像这样:
如上所示,“Model Schema”显示了API调用的实际输出结果。
我正在试图弄清楚如何使用我的远程端点完成此操作,但到目前为止还没有运气。
欢迎任何建议。
奖励积分:有没有办法简单告诉Loopback我的返回值 只是一个已定义的模型?在我的情况下,我所做的只是返回一个现有的Phone模型,所以让Loopback知道这一点并让它自动生成相应的文档会很好。
谢谢!
答案 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}