为什么我的数据源在 LoopBack 4 中没有从 'memory db' 更改为 MySQL?

Why my datasource is not chanching from 'memory db' to MySQL in LoopBack 4?

我正在尝试学习 LoopBack 4,所以我制作了他们在官方文档中提供的教程示例。我想将 todoList 示例的数据源从 'In-memory db' 更改为 'MySQL',但我一直没有成功,即使我认为这是微不足道的。

这是我的一些代码。

todo.repository.ts

export class TodoRepository extends DefaultCrudRepository<
  Todo,
  typeof Todo.prototype.id
  > {
  constructor(
    @inject('datasources.db') dataSource: MysqldbDataSource,
  ) {
    super(Todo, dataSource);
  }
}

待办事项-list.repository.ts

export class TodoListRepository extends DefaultCrudRepository<
  TodoList,
  typeof TodoList.prototype.id
  > {

  public readonly todos: HasManyRepositoryFactory<
    Todo,
    typeof TodoList.prototype.id
  >;
  constructor(
    @inject('datasources.db') dataSource: MysqldbDataSource,
    @repository.getter(TodoRepository)
    protected todoRepositoryGetter: Getter<TodoRepository>,
  ) {
    super(TodoList, dataSource);
    this.todos = this.createHasManyRepositoryFactoryFor(
      'todos',
      todoRepositoryGetter,
    );
  }
}

据我所知,这里的存储库代码负责将控制器与实际数据连接起来,然后我替换了代码并将它所说的 DbDataSource 更改为 MysqldbDataSource在上面的代码中向您展示。

无论如何,我一直在 data/db.json('in-memory db' 放置数据的地方)而不是从中检索数据实际的 MySQL 数据库。任何帮助表示赞赏。

编辑:

这是我与 MySQL 数据库连接的配置

待办事项-list.repository.ts

{
  "name": "mysqldb",
  "connector": "mysql",
  "url": "mysql://root:123456@localhost/todo",
  "host": "localhost",
  "port": 3306,
  "user": "root",
  "password": "123456",
  "database": "todo"
}

嗯,正如我一开始所想的那样非常简单。我只需要更改 todo.repository.tstodo-list.repository.ts 中的 @inject 名称,如下所示:

@inject('datasources.mysqldb') dataSource: MysqldbDataSource

我发誓我昨天晚上睡觉前做了那个,但没有用。今天,我刚刚从 LB CLI 创建了全新的存储库,而且确实有效。可能是我昨天太困了...