【问题标题】:How to specify Strongloop model schema?如何指定 Strongloop 模型架构?
【发布时间】:2016-01-25 02:02:17
【问题描述】:

我尝试覆盖 strongloop 休息端点的 find api。我想返回一个对象数组。但是如何指定对象的架构?从上图中可以看出,模型架构是空的。

下面是我公司模型remoteMethod的代码:

    Company.remoteMethod(
        'find',
        {
            accepts: {arg: 'msg', type: 'string'},
            returns: {type: 'array', root: true},
            http: {path: '/', verb:'get'}
        }
    )

【问题讨论】:

  • 您是否创建了company 模型?如果是这样,配置是什么?该配置定义了您的架构...查看documentation for how to create models
  • @jakerella:是的,我创建了一个公司模型。但是我想通过远程方法覆盖api /companies {GET},并且已经可以实现。我的问题是,在 api explorer 中,Model Schema 是 [{}],它没有显示对象的属性。
  • 啊啊,我明白了……我不知道该怎么做。

标签: loopbackjs strongloop


【解决方案1】:

如果我理解正确,您将尝试在此部分显示返回的模型,如下所示:

[
  {
    "companyProperty1": "companyProperty1Type",
    "companyProperty2": "companyProperty2Type",
    .
    .
    "companyPropertyN": "companyPropertyNType",
  }
]

为了实现这种返回类型表示,您需要将remoteMethod选项中的返回类型定义为所需模型的数组。

这是您的代码,使用modelName propery of Model base class进行必要的编辑:

Company.remoteMethod(
    'find',
    {
        accepts: {arg: 'msg', type: 'string'},
        returns: {type: [Company.modelName], root: true},
        http: {path: '/', verb:'get'}
    }
)

【讨论】:

  • Company.modelName 指的是什么?能给我举个例子吗?谢谢
  • 已编辑答案,添加参考。 Model.modelName 返回调用者模型的模型名称。在您的情况下很简单,您可以只写“公司”,但例如使用 mixins 时,它必须更通用。
  • 非常感谢。现在它可以显示架构。另一个问题是,如何自定义此架构?我的意思是如果我的原始模型包含 {propsA.propsB},但我只需要 propsA。我怎样才能实现它?
  • 我不确定我是否理解你的问题,但如果你问如何隐藏模型的某些属性,请在此处查看我的回答:stackoverflow.com/questions/35039816/… 它可能会回答你的问题跨度>
  • 抱歉,我还有一个问题。如果我发现 propsA 不是一个好名字怎么办,我想将它显示为 propsA1。有可能吗?
猜你喜欢
  • 2016-07-13
  • 1970-01-01
  • 2014-12-14
  • 2014-03-09
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 2016-06-17
  • 1970-01-01
相关资源
最近更新 更多