Sailsjs 是否可以构建更复杂的模型

2024-02-15

我想在我的模型中包含数组或集合,这对于水线(mongoDB)来说是可能的吗?周围还有其他选择吗?

example:

{
   name: Bundle,
   col1 : {
      name : anOtherModel,
      subCol: {
         text: aString,
         ...
      }
   },
   col2 : {
      name : anOtherModel,
      subCol: {
         text: aString,
         ...
      }
   }
}

to:

module.exports = {

    attributes : {

        name : {
            type : 'STRING',
            required : true
        },
        basicModules: {
            type : 'ARRAY', // or 'COLLECTION'
            required : false
        }
    }

};

我不知道这是否仍然是一个问题,但诀窍是既不要以“表单数据”的形式发布,也不要以“x-www-url-encoded”的形式发布。您必须发布“原始”内容:

假设情况:
http://www.example.com/mymodel


表单数据

您的标头可能如下所示:

POST /mymodel/create HTTP/1.1
Host: www.example.com
Cache-Control: no-cache

----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="basicModules"

[1,2,3,4]
----WebKitFormBoundaryE19zNvXGzXaLvS5C

结果是一个字符串"[1,2,3,4]"获得(类型)验证,但失败


x-www-url 编码

在这种情况下,标题是这样的:

POST /mymodel/create HTTP/1.1
Host: www.example.com
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded

basicModules=%5B1%2C2%2C3%2C4%5D

其结果与表单数据完全相同。验证失败的原因是basicModules是字符串"[1,2,3,4]"


raw

为了让它工作,你的标题必须看起来像这样:

POST /mymodel/create HTTP/1.1
Host: www.example.com
Cache-Control: no-cache

{"basicModules":[1,2,3,4]}

这会得到你想要的结果,并且类型验证有效。


所以最后,您可以用 JSON 的方式填充最复杂的模型。例如

POST /mymodel/create HTTP/1.1
Host: www.example.com
Cache-Control: no-cache

{"user": {
         "name": {
           "first":"John",
           "last":"Doe"
         },
         "age":25,
         "pets":[{
           "name":"Garfield",
           "type":"cat"
         },
         {
           "name":"Rudolph",
           "type":"reindeer"
         }]
       }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sailsjs 是否可以构建更复杂的模型 的相关文章

随机推荐

  • 未考虑 Google 自定义搜索 imgSize 和 imgType

    当我进行自定义搜索时 它会按预期返回图像和格式化的 JSON 唯一没有预料到并且没有考虑到的就是参数 imgType 照片 图像尺寸 小 这对谷歌来说没有什么区别 我仍然收到剪贴画图像和非常大的图像 在某些情况下大于 2500 像素 有任何
  • 重置区域分配器,分配仍然有效

    在我的带有 MKMapView 的 ViewController 被取消初始化后 我在 XCode 10 2 1 中收到以下消息 内存 重置区域分配器 其中 24 个分配仍然有效 我在 ViewController 中使用以下代码来清理 M
  • 如何在expo React Native App中将api级别29更改为30

    当我将应用程序包上传到 Play 商店时出现此消息 您的应用程序当前面向 API 级别 29 并且必须至少面向 API 级别 30 以确保它基于针对安全性和性能进行优化的最新 API 构建 将应用程序的目标 API 级别更改为至少 30 如
  • 检测WinRT和Windows 8之间的差异

    对于统计跟踪 我希望能够判断应用程序是在 Windows RT 还是 Windows Pro 上运行 该线程表示无法获取系统版本信息 在 WinRT Metro 应用程序 C 中获取操作系统版本 https stackoverflow co
  • Python:嵌套循环

    考虑一下 gt gt gt a one two bad good gt gt gt for i in a for x in i print x one two bad good 我该如何编写这段代码 但使用如下语法 for i in a p
  • 如何更改 Visual Studio 2012、2013 或 2015 许可证密钥?

    我的机器上有一份 Visual Studio 2012 Pro 的副本 带有一个序列号 但我不再使用它 因为我必须使用另一个序列号 我的问题是我一直卸载 Visual Studio 但重新安装后注册信息仍然存在 并且我无法弄清楚我必须删除哪
  • 使用反射和枚举进行 MVC 应用程序访问的逻辑控制是否安全?

    Trying to manage access to a web site I created some necessary entities 目标是为我的 MVC 应用程序的某些控制器的操作方法使用自定义权限属性 Permissions
  • redis:备份dump.rdb

    Context 我有一个正在运行的 redis 服务器 我想做一个备份 Idea 我想做以下事情 cp dump rdb some other location 06 24 2012 rdb Concern 我没有看到任何东西向我承诺 du
  • 使用 ExecutorService 时出现 CancellationException

    我想等待两个任务完成然后返回它们的结果 但有时我会收到此错误 为什么 CancellationException从哪里来 public class ShouldVoteTask extends AbstractWorkerTask
  • python -m 用于预提交

    pip3 install pre commit gt 已安装 我都试过了python3 m pre commit version and pre commit version 它说找不到模块 我正在使用 Pycharm 并从 Github
  • Appium - 创建会话 - 错误:应提供 JSONWP 或 W3C 功能

    我无法让 Appium 启动 Android 会话 并且在网上搜索时没有找到与我收到的错误消息相关的任何内容 当我运行测试时 Appium 转储此日志 debug MJSONWP Calling AppiumDriver createSes
  • 用于在 Google 表格中进行多次查找和替换的 Google Apps 脚本

    关于 Stack Exchange 的第一个问题 希望它有意义 一些背景 我在学校环境中工作 并协助学习支持人员为某些学生创建更易读的时间表 他们从我们的网站复制时间表数据 其中包含科目代码 教师姓名和房间号 它的格式与您在下图中看到的格式
  • AngularJS 和怪异模式:IE8+ 上的空白屏幕

    我正在开发一个 Angular 项目 该项目将包含在我无法控制的 HTML 页面中 实际上我只能访问里面的内容元素 有许多限制并不容易处理 1 我无法更改文档类型 2 我无法删除此元标记 3 应用程序必须加载 XML 文件 我设法克服了第
  • 如何在 Eclipse-Helios JDT 中专门抑制“比较相同表达式”

    我尝试用注释封闭方法 SuppressWarnings compareIdentical 但这不起作用 更糟糕的是 注释会产生自己的结果 Unsupported SuppressWarnings compareIdentical 警告 我知
  • Xcode源代码控制查看历史修改文件失败

    I used Xcode要连接的源代码控制SVN服务器 查看源代码后 我执行了commit update 一切正常 但是当我点击源代码控制 gt 历史记录 然后单击 显示修改的文件 然后显示一个警报对话框 源代码管理操作失败 因为找不到工作
  • 如何与本机桌面 (win) 应用程序建立对等连接

    我需要与本机桌面 win 应用程序和网络浏览器建立对等连接 只是为了传输原始数据 从理论上讲 WebRTC 似乎是实现这一目标的唯一方法 如果您想使用 WebRTC 在浏览器和桌面之间交换数据 您可以使用此库将桌面部分编码为 C 语言 ht
  • 在 Android Activity 中从软件键盘监听 Webview 按键事件

    是否可以在 Android 主机应用程序中处理来自 Web 视图的软件键盘事件 例如 我的应用程序的 Activity 是否可以侦听显示 Google 网站的 Web 视图的搜索字段中键入的内容 考虑到下面描述的方法 如果我覆盖它返回 tr
  • 如何在 Python 中使用递归反转列表?

    我想要一个函数 它会使用递归返回给定列表的相反内容 我怎样才能做到这一点 将列表的第一个元素附加到反向子列表 mylist 1 2 3 4 5 backwards lambda l backwards l 1 l 1 if l else p
  • XML 解析使用但元素名称是动态的

    Simple XMLElement Object IpStatus gt 1 ti pid 20642 gt SimpleXmlElement Object 我有一个上面格式的 SimpleXMLElment 这个 XML 是在运行时生成的
  • Sailsjs 是否可以构建更复杂的模型

    我想在我的模型中包含数组或集合 这对于水线 mongoDB 来说是可能的吗 周围还有其他选择吗 example name Bundle col1 name anOtherModel subCol text aString col2 name