首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nest无法解析ElasticsearchService的依赖项

Nest无法解析ElasticsearchService的依赖项
EN

Stack Overflow用户
提问于 2019-08-08 03:46:09
回答 2查看 264关注 0票数 0

我正在尝试使用ElasticsearchService Nest服务,但无法解析依赖关系

这是与package.json相关的模块版本:

代码语言:javascript
复制
"@nestjs/common": "^5.5.0",
"@nestjs/core": "^5.5.0",
"@nestjs/elasticsearch": "^6.0.1",
"@types/elasticsearch": "^5.0.34",
"elasticsearch": "^16.3.0",

这是一个示例代码:

代码语言:javascript
复制
import { Test, TestingModule } from '@nestjs/testing';
import * as mocha from 'mocha';
import {
  ElasticsearchService,
  ElasticsearchModule,
} from '@nestjs/elasticsearch';
import { Client } from 'elasticsearch';

const clientFactory = {
  provide: Client,
  useFactory: () => {
    return new Client({});
  },
};

mocha.describe('Test Suite', () => {
  let module: TestingModule;
  let elasticsearch: ElasticsearchService;

  before(async () => {
    module = await Test.createTestingModule({
      imports: [ElasticsearchModule],
      providers: [ElasticsearchService, clientFactory],
    }).compile();

    elasticsearch = module.get<ElasticsearchService>(ElasticsearchService);
  });
  it('should be defined', () => {
    console.log('This message does not appears');
  });
});
EN

回答 2

Stack Overflow用户

发布于 2019-08-08 04:59:31

除非这是一个e2e测试,否则不应该导入Module文件,因为您正在使用Nest的助手函数创建TestModule。这可能会导致您不正确地覆盖ElasticSearchService,并且不允许Nest注入正确的值。

票数 0
EN

Stack Overflow用户

发布于 2019-08-13 23:55:04

如果你看这里:https://www.npmjs.com/package/@nestjs/elasticsearch看起来ElasticSearchModule并不是一个真正可以使用的模块,它更像是一个工厂,在那里你需要调用ElasticsearchModule.register()ElasticsearchModule.registerAsync()来返回一个NestJS模块。

代码语言:javascript
复制
module = await Test.createTestingModule({
  imports: [ElasticsearchModule.register(...)],
  providers: [ElasticsearchService, clientFactory],
}).compile();

之前没有用过这个模块,这只是一个最好的猜测,祝你好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57401374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档