Har*_*mer 3 mongoose mongodb typescript typegraphql typegoose
我正在使用 Type-GraphQl (这是一个 Typescript 库,可让您使用 Typescript 类自动生成 GraphQL 架构和解析器)和 Typegoose (它对 Mongoose 查询执行相同的操作)。我正在尝试减少定义数据的文件数量,理想情况下这样我就只能获得 GQL 和 MongoDB 中数据的一个真实来源。
是否可以将这两个库组合起来,以便我使用单个 Typescript 类在一个文件中描述我的 GQL 架构和 Mongoose 类型?
例如,一个简单的 type-graphql 文件(定义“book”类型)如下所示:
import { Field, ObjectType } from "type-graphql";
import { InStock } from "./gql/shared/types";
@ObjectType()
export class Book extends InStock {
@Field()
title: string;
@Field()
publicationDate: Date;
@Field()
author: string;
@Field()
pages: number;
}
Run Code Online (Sandbox Code Playgroud)
该类typegoose看起来非常相似,但使用@prop装饰器来设置模式的属性:
import * as mongoose from "mongoose";
import { getModelForClass, prop } from "@typegoose/typegoose";
import { InStock } from "./mongoose/shared/types";
class BookClass extends InStock {
@prop()
public title: string;
@prop()
public author: string;
@prop()
public publicationDate: Date;
@prop()
public pages: number;
@prop()
}
export const Book = getModelForClass(BookClass);
Run Code Online (Sandbox Code Playgroud)
是否可以将这两种类型与两个装饰器组合在同一个文件中,或者会破坏typegoose/ type-graphl?像这样:
import * as mongoose from "mongoose";
import { Field, ObjectType } from "type-graphql";
import { InStock } from "./shared";
import { getModelForClass, prop } from "@typegoose/typegoose";
export class Book extends InStock { // Export type-graphql here...
@prop()
@Field()
public title: string;
@prop()
@Field()
public author: string;
@prop()
@Field({ nullable: true })
public publicationDate?: Date;
@prop()
@Field()
public pages: number;
}
export const Book = getModelForClass(BookClass); /// Export typegoose here...
Run Code Online (Sandbox Code Playgroud)
我看到很多用户成功地一起使用 typegoose 和 typegraphql
@ObjectType()
export class Book extends InStock {
@prop()
@Field()
public title: string;
@prop()
@Field()
public author: string;
@prop()
@Field({ nullable: true })
public publicationDate?: Date;
@prop()
@Field()
public pages: number;
}
export const Book = getModelForClass(BookClass);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3243 次 |
| 最近记录: |