[Nestjs] 使用Typeorm 在实体中根据时间生成随机编码

简介: 在日常开发中,我们会遇到很多需要自动生成编码的地方,比如订单号,单据号等。

在日常开发中,我们会遇到很多需要自动生成编码的地方,比如订单号,单据号等。


话不多说直接上代码

import { BeforeInsert, Column, Entity } from 'typeorm';
@Entity()
export class YourEntity {
  // 其他字段...
  @Column({ unique: true }) //字段被设置为 unique: true,确保每个编码都是唯一的
  code: string;
  @BeforeInsert() //实体的装饰器方法,用于在保存实体之前生成并设置代码编码。
  generateCode() {
    const currentDate = new Date();
    const datePart = currentDate.toISOString().slice(0, 10).replace(/-/g, '');
    const randomPart = Math.random().toString(36).slice(2, 8).toUpperCase();
    this.code = `${datePart}-${randomPart}`;
  }
}

这样我们保存数据的时候,实体会自动生成code字段编码,大家可以根据自己的需求调整相应的代码!

相关文章
|
机器学习/深度学习 人工智能 API
『GitHub项目圈选06』推荐5款本周 超火 的开源AI项目
『GitHub项目圈选06』推荐5款本周 超火 的开源AI项目
1332 0
|
小程序
微信小程序:本地开发环境和线上环境配置
微信小程序:本地开发环境和线上环境配置
1113 0
|
7月前
Nuxt 3环境变量读取问题解决方案
自动暴露给客户端和服务端 普通的 process.env 变量只在构建时可用 .env 文件未正确加载: 确保你的 .env 文件在项目根目录 确认文件内容格式正确(API_BASE_URL=#) 运行环境问题: 确保你在运行项目前已经设置了环境变量 解决方案 修改环境变量命名: 在 .env 文件中: ``` NUXT_PUBLIC_API_BASE_URL=https://www.fglt.me/
419 17
|
5月前
|
缓存 并行计算 前端开发
《十万线段绘乾坤:Canvas离屏渲染深度剖析》
本文聚焦Canvas绘制10万条动态线段时的帧率暴跌问题,深入解析离屏渲染的解决方案。常规渲染因高频实时绘制易超屏幕刷新时间窗口,导致卡顿。离屏渲染通过独立缓冲区预先绘制完整帧,再一次性输出到屏幕,减少实时绘制次数,利用GPU并行计算提升效率。文中还介绍了缓冲区规划、缓存机制、双缓冲协调等应用策略,以及应对资源消耗、上下文切换等挑战的方法,为前端开发者处理复杂图形绘制提供了关键技术指引。
186 0
|
12月前
|
供应链 搜索推荐 API
1688榜单商品详细信息API接口的开发、应用与收益
1688作为全球知名的B2B电商平台,为企业提供丰富的商品信息和交易机会。为满足企业对数据的需求,1688开发了榜单商品详细信息API接口,帮助企业批量获取商品详情,应用于信息采集、校验、同步与数据分析等领域,提升运营效率、优化库存管理、精准推荐、制定市场策略、降低采购成本并提高客户满意度。该接口通过HTTP请求调用,支持多种应用场景,助力企业在电商领域实现可持续发展。
247 4
|
安全 网络安全
网络安全CTF比赛有哪些事?——《CTF那些事儿》告诉你
网络安全CTF比赛有哪些事?——《CTF那些事儿》告诉你
|
缓存 关系型数据库 MySQL
为什么MySQL分页查询偏移量越大查询越慢
【5月更文挑战第1天】为什么MySQL分页查询偏移量越大查询越慢
638 4
|
弹性计算 Serverless 持续交付
聊聊如何把项目从Gitee部署到阿里云上
【7月更文挑战第11天】聊聊如何把项目从Gitee部署到阿里云上
698 1
|
网络协议 算法 API
网络编程必备:深入理解TCP/IP协议栈(含posix API实现)(上)
网络编程必备:深入理解TCP/IP协议栈(含posix API实现)