问题标签 [typegoose]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - 仅调用 Typegoose 进行保存操作时,钩子在 updateOne 上不起作用
我已经创建了这个并一直在使用这个模型。但是现在我已经添加了 @pre<Offer>("save"
,因为我想在保存之前对数据进行一些检查并相应地调整值。
我的问题是,当我首先进行更新时,控制台日志永远不会得到输出。然后我永远无法设置this.isOfferLive = false;
如果我发布isOfferLive:true
所以pre
永远不会被调用
我想念你什么?
我在用
我注意到的一件事是,在查看 consoe 日志时hooks
会被调用Model.create
但不会被调用。Model.updateOne
我如何让它们也适用于更新
我的课
node.js - 打字稿字段不可分配给输入“从不”我缺少什么使其成为日期类型?
我正在创建我的用户架构,但在尝试为registrationStatusTimeStamps
函数上的字段分配值时出现以下错误,@pre<save>
并ts
一直说是of type never
.
我已经尝试了一切,但我一直在抱怨 TS 并且该字段没有保存。我想我想要的输出显然是在一个对象中保存字段的时间
我错过了什么?
error TS2322: Type 'Date' is not assignable to type 'never'
所需的存储输出
编码
javascript - Angular/Typescript 从类键/接口/类型中获取字符串 []?ts-transformer-keys 不适用于角度
所以我有一个通过 npm 发布的外部模型/接口包,它是使用 typegoose + mongoose 构建的,所以我可以将我的接口放在一个地方,然后在多个应用程序中使用接口/模型,同时保持它们同步。
现在的问题是,我在前端制作了一些动态表来处理任何一个集合,所以我试图找到一种方法来获取键作为字符串,同时在一个地方保持所有动态。
到目前为止,我已经尝试过 ts-transformer-keys 但由于必须在编译时实现一些东西,它不能在 Angular 中工作。
我也不能将类直接用于角度,因为类扩展Typegoose
取决于mongoose
哪个会引发有关某些全局事物的错误,然后使整个应用程序崩溃。
我的类在哪里User
扩展 Typegoose 并且IUser
是该类的类型,例如:
仍然有mongo依赖错误
仍然需要手动添加所有属性
mongoose 依赖会抛出错误
不起作用,因为类型在运行时不存在;
也许是类上的一个装饰器,它遍历所有键并将构造函数名称添加到类原型中?这似乎不太可能在运行时工作。
对于未来的读者,请阅读这个 github 问题,TL;DR:typegoose 目前不支持客户端类
typegoose - 模型方法采用任何类型的文档或查询
使用以下方法获取类模型后:
我想找到一个并删除使用:
我注意到的问题是 for 的参数.findOneAndDelete()
具有任何类型。
这是typegoose的默认行为吗?还是我缺少什么?我注意到保存等同样的事情。
node.js - 用于休息 api 的 typegoose/mongoose 日期格式
我正在为与 mongodb 耦合的服务器使用打字稿。
我正在使用 openapi 文件严格定义输出。
对于猫鼬,我非常熟悉定义日期,例如:
现在使用 Typegoose:
到目前为止一切顺利,除非我需要从我的快速打字稿服务器输出,例如:
界面“登录”看起来像这样(基于 swagger 定义生成):
如果我将其更改birthday?: string;
为birthday?: Date;
它是可以的,但是这会破坏 swagger 定义的预期输出:
迭代调用函数将所有日期对象转换为日期时间字符串的整个对象会很昂贵。
这里的最佳做法是什么?
node.js - typegoose:如何在 typegoose 中找到导演或制片人是迈克尔·贝的电影
我正在尝试从 getMovies 端点返回导演或制片人是迈克尔·贝的所有电影。
所以上面返回了导演的所有电影
sample movie object
电影:{名称:“movieName”,导演:“迈克尔·贝”,制片人:“其他制片人”}
mongoose - class-validator 对 IsDateString 的验证失败,“必须是 ISOString 但记录的值显然是 ISO 字符串?
确切的错误:
类中的字段:
获取来自数据库的文档:
调用验证器:
我也试过打电话order.toObject()
,但效果相同。
javascript - 如何使用另一个类作为定义的数据类型来验证嵌套 json 的模式结构
我不知道这是否是定义数据类型的正确方法。
我也尝试使用@mapProp()
注释。
我只想获取field_value
这三种参数。
如果:
然后:
否则:
一些错误信息
node.js - GraphQLError:类型查询必须定义一个或多个字段。使用类型鹅
我尝试在我的项目中实现 typegoose。我正在创建一个nestjs graphql 服务器并使用猫鼬将文档推送到我的数据库中。
我尝试使用 typegoose 来简化实现新功能的方式,但我遇到了一个问题,即用 typegoose 转换我的猫鼬“模式”。
让我们看看我的代码
广告.ts
广告控制器.ts
广告服务.ts
广告模块.ts
但我收到此错误消息:
错误堆栈跟踪
typegraphql - 如何使用 GraphQL 配置 Typegoose 以将子文档引用到另一个文档的一部分?
我有一个集合User
,其中包含两个Country
作为子文档嵌入的集合字段。Country
集合用作枚举器,用于在将其插入集合之前进行引用User
。我想将此逻辑应用于我的 GraphQL 和 Typegoose 项目。
在 user.schema.ts 文件中:
在 country.schema.ts 文件中:
用户集合有一个名为“Country”的子文档。子文档只有“国家”集合中的“id”和“name”。
这是“Country”集合中的文档的样子:
我希望每次创建用户时都能引用国家/地区表。目前,我正在尝试以国家/地区作为属性来查询用户,它给了我错误:
不能为不可为空的字段 User.country 返回 null。每个用户都已经有一个国家/地区子文档。它们都不是空的。这是必需的。
我什至无法正常查询它。我想通过先查询它来测试,然后将它插入到用户表中国家表中不可用的国家,以测试它是否会抛出错误。
如果这很重要,我正在使用 NestJS。