如何定义和使用UUID字段?

时间:2019-05-31 15:08:59

标签: strapi

我需要一种内容类型的UUID字段,借助下面的介绍,我修改了文件“ MyType.settings.json”。

https://strapi.io/documentation/3.x.x/guides/models.html#define-the-attributes

"uid": {
  "default": "",
  "type": "uuid"
},

我认为UUID是自动保存的,但是什么也没发生。

如何定义和使用UUID字段?有人可以给我提示吗? 我是否还应该修改文件\ api \ MyType \ controllers \ MyType.js?

谢谢!

本杰明

2 个答案:

答案 0 :(得分:1)

您可能还希望使用v4 UUID,这是非常的最大保证,它生成速度最快,并且会给您与其他所有相等条件碰撞的机会最小(可以是10x或甚至更快),这是99%的人希望为以下目的生成UUID的原因:

在全球UUID社区中工作,保持尽可能独特,不会与其他任何东西冲突。

此外,v4比v1更安全,因为v1包括制作时间和创建它的硬件,并且冲突率异常更高,因为今天没有人尊重节点字段和只是充满了熵,这破坏了v1的全部目的。

在v1上使用v4的原因非常明显,因此该信息应该变得更加公开和广泛。白天和黑夜。现在,所有仅寻求熵的主要框架都使用v4。

import { v4 as uuid } from "uuid";
// Then just...
const myUUID = uuid()

创建UUID v1的原因是,人们甚至是提出UUID的天才计算机科学家都没有完全意识到,仅128位的地址空间比花哨的定时和节点跟踪要好得多。 UUID v1是过度设计的一个很好的例子。

答案 1 :(得分:0)

您将必须使用uuid节点模块。 因此,保留您的属性,并在lifeCyle函数中,使用lib设置uuid

'use strict';

const uuid = require('uuid');

module.exports = {
  beforeCreate: async (model) => {
    model.set('uid', uuid());
  }
};
相关问题