Sails Js - 防止非模型字段保存在 mongo 文档中

Posted

技术标签:

【中文标题】Sails Js - 防止非模型字段保存在 mongo 文档中【英文标题】:Sailsjs - Prevent non-model fileds to be saved in mongo document 【发布时间】:2015-09-11 16:26:17 【问题描述】:

我最近开始使用 Sailsmongo。 我使用 Sails 蓝图来生成我的部分 api。 问题是,无论模型中定义的字段如何,我发送的请求正文都被保存到 mongo 集合中。

例如,假设我有以下 Event 模型:

module.exports = 

  attributes: 

    title: 
     type: 'string',
     required: true
    ,
   

当我使用以下参数向 /event/ 端点发送 POST 请求时:

"title":"Some Event", "random":"string"

保存的 mongo 文档还包含 "random":"string" 值,即使它不是模型的一部分。

我试图想出一些通用方法在为所有模型创建之前删除非模型属性,但可能的解决方案似乎不正确和肮脏。

我错过了什么吗?

任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

您可以在模型中使用schema 选项。只需将其添加到模型声明中即可。

// api/models/Model.js
module.exports = 
  schema: true,
  attributes: 
    title: 
      type: 'string',
      required: true
    
  
;

【讨论】:

以上是关于Sails Js - 防止非模型字段保存在 mongo 文档中的主要内容,如果未能解决你的问题,请参考以下文章

如何在sails.js 模型中添加具有整数数据类型数组的属性?

多对多关系连接表上的sails.js 额外字段

Sails js:如何在 Sails js 的单个模型中定义两个 MySQL 连接到两个不同的数据库?

在 Sails.js 中更新用户模型时更改密码

Sails.js:模型的生命周期回调:它们是不是支持 beforeFind 和 afterFind?

Sails.js 简单的私人消息传递(发布/订阅和模型)