小编Roy*_* Ra的帖子

e2e 测试 NestJS 时使用测试数据库

在这个项目中,它使用 NestJS 和 TypeORM。对于真正的API请求,CRUD操作是在MySQL(使用AWS RDS)上进行的。

现在我尝试使用 SQLite(In-Memory) 来测试 API 结果。

我在单元测试中成功实现了这一点,如下代码。

首先,下面是create-memory-db.ts,它返回到内存 SQLite 数据库的连接。

type Entity = Function | string | EntitySchema<any>;

export async function createMemoryDB(entities: Entity[]) {
  return createConnection({
    type: 'sqlite',
    database: ':memory:',
    entities,
    logging: false,
    synchronize: true,
  });
}
Run Code Online (Sandbox Code Playgroud)
  • 通过使用上面导出的函数,我成功运行了单元测试,如下所示。
describe('UserService Logic Test', () => {
  let userService: UserService;
  let connection: Connection;
  let userRepository: Repository<User>;

  beforeAll(async () => {
    connection = await createMemoryDB([User]);
    userRepository = await connection.getRepository(User);
    userService = new UserService(userRepository);
  });

  afterAll(async () => { …
Run Code Online (Sandbox Code Playgroud)

javascript e2e-testing typeorm nestjs

13
推荐指数
1
解决办法
2万
查看次数

如何解决Create-React-app项目中的Chunk Load错误?

我正在部署一个使用 CRA(Create-React-App) 生成的项目,并且所有 babel 和 webpack 配置保持不变。

另外,我正在使用 AWS S3 的静态存储桶托管功能部署我的 React 应用程序。

问题是,由于不包含服务器,因此每次部署新文件时,都会创建具有随机哈希值的新块。

当客户端位于具有旧哈希的网站中并且部署了新哈希时,客户端会收到块加载错误。

为了演示这一点,使用 构建项目并yarn build转到/build文件夹以查看 webpack 生成的块。然后使用serve,我可以演示我的部署在本地计算机中的行为方式。

执行后yarn serve,转到正在提供构建文件的相应本地主机。

然后,在/build/static/js文件夹中,根据需要重命名每个块文件的哈希值。

保持浏览器不变,然后重新启动yarn serve,这将提供重命名的块文件。

然后回到浏览器,你很可能会得到两个错误:

Uncaught SyntaxError: Unexpected token '<'

Loading Chunk n failed.(missing: ~~)
Run Code Online (Sandbox Code Playgroud)

我认为可以解决这个问题的方法是在发生 ChunkLoadError 时硬重新加载网页。遗憾的是,window.reload(boolean)函数已被弃用,仅仅这样做并window.location.reload()不能解决这个问题。

+) PS。React.Lazy()我通过在一些代码中使用来实现代码分割。

chunks webpack create-react-app webpack-4

4
推荐指数
1
解决办法
1万
查看次数