javascript - 如何使用 JavaScript 在 TypeORM 中使用 Active Record 模式
问题描述
TypeORM 在此处提供了用 JavaScript(没有 typescript)实现的示例。
问题是,只描述了数据映射器模式。在我当前的项目中,我想使用 Active Record 模式。
我尝试添加指向(作为字符串或对象)的extend
或属性,但这不起作用。target
BaseEntity
我需要做什么?
解决方案
定义模型和模式
(模型/Nugget.js)
import typeorm from 'typeorm'
const { BaseEntity, EntitySchema } = typeorm
// "model"
export class Nugget extends BaseEntity {
id;
name;
}
// "schema"
export const NuggetSchema = new EntitySchema({
name: "Nugget",
target: Nugget, // the class above
columns: {
id: {
primary: true,
type: "int",
generated: true
},
name: {
type: "varchar"
},
}
})
连接时传递实体中的模式
(dbConnect.js)
import typeorm from 'typeorm'
const { createConnection } = typeorm
import { NuggetSchema } from './models/Nugget'
const connection = await createConnection({
type: db_type, // e.g. mysql
host: db_host,
port: db_port,
database: db_database,
username: db_user,
password: db_pass,
synchronize: false, // set to true to modify database to match schema
logging: false,
entities: [
NuggetSchema
]
})
导入模型并使用它来添加/删除/查询该项目(活动记录模式)
(index.js)
import './dbConnect.js'
import { Nugget } from './models/Nugget'
const nugget = new Nugget()
nugget.name = "Hi I Am A Nugget"
await nugget.save()
const nuggets = await Nugget.find({})
console.log('nuggets', nuggets)
推荐阅读
- scikit-learn - 生成通用句子编码器嵌入维度时出错
- c# - 更改 WPF Groupbox 的颜色和样式
- android - Android导航组件:指向不同活动的深层链接
- python - 使用 AWS CloudWatch 洞察日志的日志检索解决方案
- python - Django 标记/选择列表视图中的一些数据
- python - cv2.getPerspectiveTransform 用于选定区域之外的点
- python - 继续收到 .float64 没有可调用的 rint 属性的错误
- video - 在没有 hwdownload 的情况下将 ffpmeg OpenCL 过滤器输出传递给 NVenc?
- llvm - LLVM::predecessors 可以返回重复的基本块指针
- php - 如何在php中比较两个相同或不同的MongoDB对象ID