typescript - Nest 无法解析 ItemsService (?) 的依赖关系。请确保索引 [0] 处的参数在 AppModule 上下文中可用
问题描述
我遵循了 Nest JS Crash 教程,Youtube Link,我遵循了这个,但是当我在服务中导入接口时它显示错误
Nest 无法解析 ItemsService (?) 的依赖关系。请确保索引 [0] 处的参数在 AppModule 上下文中可用。
我克隆了教程中给出的存储库,它工作正常,但是当我将该存储库的 src 文件夹复制到我的项目时,它会引发错误。这是我的服务文件
import { Injectable } from '@nestjs/common';
import { Item } from './interfaces/item.interface';
import { Model } from 'mongoose';
import { ItemsModule } from './items.module'
import { InjectModel } from '@nestjs/mongoose';
@Injectable()
export class ItemsService {
constructor(@InjectModel('Item') private readonly itemModel: Model<Item>) {}
});
}
当我评论构造函数行时,它工作正常,我认为问题在于这一行,
从“猫鼬”导入{模型};
因为当我将鼠标悬停在这一行时,它显示找不到该模块的声明。我什至尝试复制工作代码的 package.json 文件进行测试,但错误仍然相同
我的模块项目包含,控制器文件,服务文件,模块文件,dto 文件,接口文件,模式文件,
解决方案
为了解决它,您必须从app.module.ts
文件中删除 ItemsController 和 ItemsService 导入。
这是解决方案,因为:
- 您已经在文件中导入了 ItemsController 和 ItemsService,
items.module.ts
因此无需在文件中再次导入它们app.module.ts
。 - 在你的
items.module.ts
你有下一行:
这是使@Module({ imports: [MongooseModule.forFeature([{ name: 'Item', schema: ItemSchema }])], ... })
items.service.ts
文件中的依赖注入工作所必需的,因为您可以签入app.module.ts
没有该行的文件。 - 当然,您可以将该行添加到您的
app.module.ts
文件中,但是创建该文件是没有意义的items.module.ts
。
检查我的回购xD。
推荐阅读
- python - Visual Studio 中的代码未输入正确的输出,以随机数退出
- swift - 修复 inflate 中的 UnsafePointer 警告
- netty - Netty HttpClient 遵循相对重定向
- entity-framework - 在弱实体实体框架中插入重复记录
- sql - 将 Employee 表中的所有数据从数据库复制到 A 到数据库 B 上的 Employee 表
- python - A3C 的自定义内存层
- bash - 如何让Linux中的tee逐行提供屏幕输出,而不是在执行结束时?
- macos - 如何在云端构建和部署 iOS 应用程序?
- php - 长 PHP 脚本在 10 分钟标记处导致 500 错误
- r - 基于另一个向量的值重新分配向量索引的值的问题