问题标签 [nestjs]
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.
node.js - NestJS 无法验证参数在当前上下文/Mongoose 注入模型中是否可用
我遵循了nestjs网站上的MongoDB教程,但无法在我自己的项目中复制它,我已经克隆了nextjs repo并验证了那里提供的mongo示例运行良好。
这是我目前拥有的(缩小):
app.module.ts
活动模块.ts
活动服务.ts
这可以按预期构建,但是当我运行它时出现此错误:
因此,因为在我的 app.module.ts 中,我的模块部分中有活动模块(到目前为止,我如何让它在 mongodb 之前运行良好),所以我将它移动到带有 MongooseModule 的导入部分,现在它可以正常构建和运行,但是campaign.controller.ts 控制器内部的路由根本没有注册,它们只是返回404。这很奇怪,因为nestjs repo 中的示例在带有MongooseModule 的导入中包含CatsModule 并且它可以工作。
这里的任何提示将不胜感激。这也是我的活动对象的架构和界面:
编辑 1 我将所有模块移动到我的 app.module.ts 文件的导入部分,就像我在导入中使用 CampaignModule 和模块中的所有其他模块一样尝试它:[]。现在,当出现相同的错误并且没有注册任何路由时,它会立即失败。
node.js - MongoDB/Mongoose $inc 子文档不修改任何内容
我正在尝试更新数组内的子文档。
当我运行时:
在 mongo 控制台中,它可以很好地更新子文档。但是当我在我的 Mongoose 代码中运行它时:
子文档的 amountRaised 字段没有增加。据我所知,他们应该是相同的电话?
如果我在更高级别经营一家公司:
它工作正常,所以这一定与子文档有关?在一天的大部分时间里,我一直在玩多个猫鼬电话,但似乎无法让它正确更新。
nestjs - 在引导运行后运行组件(服务)方法的最佳方法是什么?
我使用 NestJS 实例作为微服务(没有 HTTP)。
我需要在引导初始化之后运行带有一些业务逻辑的无限循环组件的方法。
最好的方法是什么?
src/main.ts
src/app.service.ts
typescript - 如何在nest.js 中创建装饰器?
我很长一段时间都遇到了麻烦。我的装饰器应该提供信息以检查字段的唯一值。它看起来像这样:
我的验证看起来像这样:
执行代码后,看起来像 md=undefined。那么我如何检索我的元数据呢?也许,我以错误的方式使用 createPropertyDecorator?
编辑:几个小时后,我意识到nestjs没有“createPropertyDecorator”,我从swagger模块导入它(大错误)。所以我需要创建自己的功能。现在我这样做:
所以,我的问题是一样的——如何正确定义元数据,这样它就不会干扰其他人的?
swagger - 如何将 ApiModelProperty 装饰器添加到多对一关系
我将 Nest.js 与 TypeORM 和 Swagger 模块一起使用。到目前为止,使用 Swagger 记录 API 端点就像一个魅力,但我想在自动生成的 API 文档中包含定义多对一关系的属性。
这是我正在使用的示例实体定义:
不幸的是,所有者属性不喜欢带有未处理的承诺拒绝的 ApiModelProperty 装饰器。
是否可以在 Nest.js + Swagger 的文档中添加关系属性,如果是这样,我错过了什么?
提前致谢
typeorm - 如何处理 NestJS 中的 TypeORM 实体字段唯一验证错误?
我在我的 TypeORM 实体字段电子邮件上设置了一个自定义的唯一验证器装饰器。NestJS 有依赖注入,但服务没有注入。
错误是:
对实施自定义电子邮件验证器有任何帮助吗?
user.entity.ts
:
我的CustomEmail
验证人是
我知道我可以unique
在Column
选项中设置
但这会引发 mysql 错误,并且会使ExceptionsHandler
我的应用程序崩溃,所以我自己无法处理...
谢谢!
javascript - 在 Nest JS 中导入 dto 类
我正在尝试使用 DTO 在 Nest.js 中为我的控制器定义我的数据。
我正在关注教程
我已经在其中创建了我的 DTOsrc/controllers/cats/dto/create-cat.dto.js
不过,我对如何将其导入应用程序感到困惑。文档实际上并没有说明它需要导入,所以我认为 Nest 在幕后做了一些魔术?尽管我有一种感觉,但事实并非如此。
我正在尝试将其直接导入我的控制器中:
但这会引发错误:
DTO 代码是直接从嵌套文档中删除的,因此代码不应该有问题(尽管readonly name: string;
看起来不像我以前遇到过的 javascript)。
作为参考,这是我尝试使用 DTO 的猫控制器的其余部分
是否需要导入 DTO 类,然后使用绑定到我的创建函数Res()
,Body()
或者嵌套在幕后做了一些魔术,因为他们从未声明要在文档中导入它?
谢谢。
node.js - Nestjs 解决自定义启动依赖
我有这个解决redis的工厂:
但除此之外,我想检查redis中是否存在特定的密钥,如果不存在,我想使用微服务检索它,但为此我需要注入微服务“客户端”,我想将其更改为类似的:
唯一的问题是我无法访问“客户端”,还是我?如果它更有意义,它也可以是另一个提供程序,但是我还需要优先加载提供程序,我这样做是因为应用程序需要这些数据来启动东西
javascript - 如何在nest.js中为ApplicationModule以外的模块应用中间件?
我试图基于配置应用中间件,如下所示:
方法getAuthRoutes
是静态的:
我的 AuthMiddleware 非常基本:
它只是在控制台中记录行。我试图通过获取请求/api/users 访问,我正在获取用户列表,但控制台中没有 AuthMiddleware 消息。有什么建议吗?
nestjs - 如何在 NestJs 中测试模块
我正在为项目添加测试并提高覆盖率。我想知道如何在 NestJs 中测试模块定义(mymodule.module.ts 文件)。特别是,我正在测试一个导入其他模块的主模块,其中一个模块启动数据库连接,这意味着我需要在另一个模块上模拟服务,以避免真正的数据库连接。此刻我有这样的事情:
这行得通,但我相信这可以得到改进:)
理想的情况是类似于 Test.createTestingModule 提供的 overrideComponent 方法。
PS:我用的是4.5.2版本