繁体   English   中英

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

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

我正在尝试学习LoopBack 4,因此我将他们在官方文档中提供的教程示例。 我想从'内存数据库'为'MySQL'更改todoList示例的数据源,但我一直没有成功,即使我认为这是如此微不足道。

这是我的一些代码。

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,
    );
  }
}

据我所知,这里存储库代码负责将控制器与实际数据连接,然后我替换代码并更改它在DbDataSourceMysqldbDataSource正如我在上面的代码中所示。

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

编辑:

这是我与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创建全新的存储库,确实有效。 也许我昨​​天太困了......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM