我有一个模型定义为 PersistedModel
,因此与 mongodb 集合相关。我想实现以下目标:
- 要隐藏的默认 crud 方法
- 要公开并映射到路线上的自定义远程方法
GET /
(默认为myModel.find()
)
到目前为止,我无法同时满足这两个要求:如果我将模型设置为公共(public),它会附带映射在标准路由上的整套内置方法,如果我将其设置为非-公开甚至我的自定义 Remote 也被隐藏。
最佳答案
您正在寻找的功能是:
MyModel.disableRemoteMethod(name, [isStatic])
这里是API docs .
不幸的是,您需要单独禁用每个方法......
另一种解决方案是创建两个不同的模型,一个是公共(public)的,一个不是(您可以在 server/model-config.json
中将 Public
bool 值更改为 false文件。您不需要将“公共(public)”模型附加到数据源。
"MyPublicModel": {
"dataSource": null,
"public": true
},
"MyPrivateModel": {
"datasource": "db",
"public": false
}
面向公众的模型将是基类Model
,而非公共(public)模型仍将是一个PersistedModel
,且不暴露任何端点。您可以通过调用 MyPublicModel.js
文件中的 MyPublicModel.app.models.MyPrivateModel
来访问“Private”模型的功能。
(如果您需要任何说明,请发表评论)。
关于javascript - Strongloop:隐藏 PersistedModel 上的默认方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38700599/