我有一个定义为PersistedModel的模型,因此与mongodb集合有关。我要实现以下目标:


隐藏的默认Crud方法
将公开并映射到路由GET /的自定义远程方法(默认为myModel.find()


到目前为止,我无法同时满足这两个要求:如果将模型设置为public,则它将带有映射到标准路由上的整套内置方法,如果我将其设置为非public,即使我的自定义遥控器也被隐藏了。

最佳答案

您要寻找的功能是:

MyModel.disableRemoteMethod(name, [isStatic])


这是API docs

不幸的是,您需要分别禁用每种方法...

另一种解决方案是创建两个不同的模型,一个创建公共模型,一个不创建公共模型(您可以在Public文件中将server/model-config.json布尔值更改为false。您无需将“公共”模型附加到数据源。

"MyPublicModel": {
  "dataSource": null,
  "public": true
},
"MyPrivateModel": {
  "datasource": "db",
  "public": false
}


面向公众的模型将是基类Model,而非公开模型将仍然是PersistedModel,并且没有暴露任何端点。您可以通过调用MyPublicModel.app.models.MyPrivateModel文件中的MyPublicModel.js来访问“专用”模型的功能。

(如果需要任何说明,请发表评论)。

10-01 04:21