javascript - 如何设置 JSON 对象的大小限制?

标签 javascript json postgresql sequelize.js

我创建了一个 API,其中字段之一是任意 JSON 对象。我正在使用 Sequelize 和 Postgres。该字段需要灵活,因为它允许用户存储自己的元数据,但我确实想限制大小以防止用户上传巨大的对象。这是我当前关于对象定义的解决方案:

metadata: {
  type: DataTypes.JSONB,
  allowNull: true,
  validate: {
    len: {
      args: [18, 1000],
      msg: 'Metadata exceeds the max length of 1000 characters.',
    },
  },
},

这基本上有效,但我不知道 len 实际测量的是什么,因为它不是字符串。它似乎没有测量 JSON 对象中的字符数。我确信有更好的方法来做到这一点,但我所有的谷歌搜索都只是显示有关 Postgres 中 JSONB 对象的最大大小的信息。我想设置一个低于最大大小的限制。我希望目前能够将其限制为 ~1,000 个字符或 1KB。

最佳答案

您可以使用检查约束:

CREATE TABLE (
   ...
   jcol jsonb CHECK (length(jcol::text) < 1000)
);

考虑标准化数据。

关于javascript - 如何设置 JSON 对象的大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66229629/

相关文章:

javascript - NodeJS - typescript - 智能感知

javascript - 如何从 GOOGLE AJAX Feed API 获取新闻项目的描述

java - elasticsearch java api putmapping from json 文件错误

postgresql - postgres - 使用提供临时表的函数创建 View

sql - 是否有一个函数可以让我输出 json 数组中元素的当前索引?

ruby-on-rails - Rails 迁移从 :bigint to :integer 更改数据类型

Javascript-创建元素作为另一个元素的子元素

javascript - Aria-live 内容被 Mac 读取两次 - Chrome - VoiceOver

python - 我可以在 Python 中验证 JSON 模式中字符串的内容吗

python - urllib python 中的 HTTPResponse 错误