serveless 思想 Midway.js 框架使用教程(六)

简介: serveless 思想 Midway.js 框架使用教程(六)

定义实体模型


我们使用 Entity 来定义一个实体模型类。


// entity/photo.ts
import { Entity } from 'typeorm';
@Entity('photo')
export class Photo {
  id: number;
  name: string;
  description: string;
  filename: string;
  views: number;
  isPublished: boolean;
}



如果表名和当前的实体名不同,可以在参数中指定。


// entity/photo.ts
import { Entity } from 'typeorm';
@Entity('photo_table_name')
export class Photo {
  id: number;
  name: string;
  description: string;
  filename: string;
  views: number;
  isPublished: boolean;
}


添加数据库列


通过 typeorm 提供的 @Column 装饰器 来修饰属性,每一个属性对应一个列。


// entity/photo.ts
import { Entity, Column } from 'typeorm';
@Entity()
export class Photo {
  @Column()
  id: number;
  @Column()
  name: string;
  @Column()
  description: string;
  @Column()
  filename: string;
  @Column()
  views: number;
  @Column()
  isPublished: boolean;
}


创建主键列


每个实体必须至少具有一个主键列。要使列成为主键,您需要使用 @PrimaryColumn 装饰器。


// entity/photo.ts
import { Entity, Column, PrimaryColumn } from 'typeorm';
@Entity()
export class Photo {
  @PrimaryColumn()
  id: number;
  @Column()
  name: string;
  @Column()
  description: string;
  @Column()
  filename: string;
  @Column()
  views: number;
  @Column()
  isPublished: boolean;
}


创建自增主键列


现在,如果要设置自增的 id 列,需要将 @PrimaryColumn 装饰器更改为 @PrimaryGeneratedColumn 装饰器:


// entity/photo.ts
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Photo {
  @PrimaryGeneratedColumn()
  id: number;
  @Column()
  name: string;
  @Column()
  description: string;
  @Column()
  filename: string;
  @Column()
  views: number;
  @Column()
  isPublished: boolean;
}


此外还有有几种特殊的列类型可以使用:


●@CreateDateColumn 是一个特殊列,自动为实体插入日期。

●@UpdateDateColumn 是一个特殊列,在每次调用实体管理器或存储库的save时,自动更新实体日期。

●@VersionColumn 是一个特殊列,在每次调用实体管理器或存储库的save时自动增长实体版本(增量编号)。

●@DeleteDateColumn 是一个特殊列,会在调用 soft-delete(软删除)时自动设置实体的删除时间。

目录
相关文章
|
18天前
|
开发框架 JavaScript 安全
js开发:请解释什么是Express框架,以及它在项目中的作用。
【4月更文挑战第24天】Express是Node.js的Web开发框架,简化路由管理,支持HTTP请求处理。它包含中间件系统用于日志、错误处理和静态文件服务,集成多种模板引擎如EJS、Jade、Pug。框架还提供安全中间件提升应用安全,并具有良好的可扩展性,便于项目功能扩展和开发效率提升。
26 3
|
4天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
28 10
|
2天前
|
存储 JavaScript 前端开发
Javascript教程
Javascript教程
7 0
|
3天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
8 0
|
4天前
|
JavaScript 前端开发
JS实现网页页面的框架(demo)
JS实现网页页面的框架(demo)
9 1
|
10天前
|
设计模式 前端开发 JavaScript
AngularJS是一款由Google收购的JavaScript结构框架
AngularJS是Google收购的JavaScript框架,用于构建动态Web应用,基于MVC模式,强调模块化和双向数据绑定。它简化了视图与模型的同步,通过语义化标签和依赖注入提升开发效率。适用于复杂单页面应用(SPA),但不适合DOM操作密集型或性能要求极高的场景。
18 0
|
12天前
|
JavaScript 前端开发 IDE
【JavaScript与TypeScript技术专栏】TypeScript在JavaScript库与框架开发中的作用
【4月更文挑战第30天】TypeScript,微软开发的JavaScript超集,以其强类型和面向对象特性,正成为提升Web项目质量和效率的关键工具,尤其在库和框架开发中。它通过类型系统减少运行时错误,提供内置文档,便于重构,增强IDE支持,以及支持模块化。流行框架如React、Angular已支持TypeScript,未来有望成为开发高质量库和框架的标准语言。随着社区增长,TypeScript将在Web开发领域扮演更重要角色。
|
12天前
|
开发框架 JavaScript 中间件
深入探索Node.js的Express框架:使用与中间件详解
【4月更文挑战第30天】本文深入探讨了Node.js的Express框架,介绍了其作为Web开发的强大工具,主要聚焦于基本使用和中间件。Express是基于Node.js的Web应用框架,用于构建高效的应用和API。文章详细讲解了如何安装Express,创建简单应用,以及中间件的工作原理和应用,包括中间件的顺序、错误处理和挂载位置。此外,还提到了使用第三方中间件扩展功能。理解Express基础和中间件对于开发高质量Web应用至关重要。
|
13天前
|
JavaScript 前端开发 开发者
前端框架(Vue.js&&vue-cli项目框架&&element-ui使用)
前端框架(Vue.js&&vue-cli项目框架&&element-ui使用)
|
1月前
|
JavaScript 前端开发 API
框架分析(3)-Vue.js
框架分析(3)-Vue.js