小编Aud*_*ong的帖子

如何使用 Jest testPathIgnorePatterns 忽略文件名约定(React、Jest、Regex)

我试图建立一个约定来忽略任何遵循某种模式的测试。如果你想让 jest 在 npm 测试期间忽略它,文件名将如下所示。

DISABLED.MyComponent.test.js

尝试使用 testPathIgnorePatterns

testPathIgnorePatterns: ['<rootDir>/src/**/DISABLED.{*}.js'],

错误是它仍在运行,或者抛出正则表达式无效的错误。

regex reactjs jestjs

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

无法一对多查询属性 NestJS 和 TypeORM

我有两个实体,一个是car,另一个是carAvailability

import { Entity, Column, PrimaryGeneratedColumn, OneToMany } from 'typeorm';
import { CarAvailability } from 'src/car-availabilitys/car-availability.entity';

@Entity('cars')
export class Car {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @OneToMany(() => CarAvailability, (carAvailability) => carAvailability.car, {
    eager: true,
    cascade: true,
  })
  availabilities: CarAvailability[];
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试添加一项根据可用性查询和过滤汽车的服务。在我的服务中尝试了两种方法:

具有 repo 函数的方法 1:

async test () {
  const startDateTime = '2012-04-24 02:25:43.511';

  return await this.repo.find({
    relations: ['availabilities'],
    where: {
      availabilities: {
        start_date_time: startDateTime
      }
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

使用查询生成器的方法 2:

async test () { …
Run Code Online (Sandbox Code Playgroud)

javascript postgresql typeorm nestjs

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

TypeORM createQueryBuilder:可以使用表名作为字符串而不是实体

在我当前的场景中,第三方将在我的数据库上动态创建表,并将表名称存储为 a varchar,列名称存储jsonb在其他表中,该表在我的 NestJS 后端中定义为实体。

这样我就可以跟踪(和查询)这些表,因为我无法控制它的创建。

为此,我想使用TypeORM而不是使用原始查询,createQueryBuilder因为它更容易使用抽象。

据我所知,TypeORMcreateQueryBuilder需要在子句中定义一个实体from

像这样的事情:

return await getManager()
  .createQueryBuilder()
  .select('*')
  .from(MyDefinedModel, 'modelAlias')
  .getRawMany();
}
Run Code Online (Sandbox Code Playgroud)

所以我想做一些类似的事情:

const tableName = await getDynamicallyGenetaredTableNames().getFirstOne()
// now tableName points to a string that is a table name, i.e 'table-data-192239'

 return await getManager()
  .createQueryBuilder()
  .select('*')
  .from(tableName, 'tableAlias')
  .getRawMany();
Run Code Online (Sandbox Code Playgroud)

因此,传递表名我指向正确的表,但 TypeORM(和 TS)抱怨,因为这tableName是一个字符串,而不是实体(类)类型

如果有更干净的东西可以实现这一点,我真的不想进行类型转换并开始做一些令人讨厌的事情。我在官方文档中没有找到任何解决方案

有什么绝妙的想法吗?谢谢你们

javascript sql node.js typeorm nestjs

8
推荐指数
1
解决办法
5119
查看次数

MongoDB 的 TypeORM 与 mongoosejs

哪一个最适合 typescript 环境以及与 mongoDB 使用的每个库相关的优点和缺点是什么?
我发现猫鼬不太兼容/需要一些工作才能在打字稿环境中使用。
还有另一个库typegoose,它在 mongoosejs 之上提供打字稿实现,但看起来它需要支持 mongoosejs 的更多功能。
我还发现 TypeOrm 主要针对 Sql 数据库。
请分享您关于 MongoDB 与 mongoosejs 的 typeorm 的经验。

mongoose mongodb express typescript typeorm

7
推荐指数
0
解决办法
3456
查看次数

如何防止 Prettier / ESLint 中的代码换行

我正在努力在 Prettier / ESLint 配置中找到一个设置,它允许我像这样包装我的代码:

var [
  first,
  second,
  third,
  etc,
] = data();
Run Code Online (Sandbox Code Playgroud)

当我点击保存时,它总是自动将代码变成这样:

var [first, second, third, etc] = data();
Run Code Online (Sandbox Code Playgroud)

对于这个简单的演示来说,这可能不是一个大问题,但是对于更复杂的解构,这一行将变得难以阅读。

感谢您的帮助!

javascript destructuring prettier

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

TypeORM PostgreSQL 无法连接

我无法让我的数据库和服务器相互连接。服务器是express的,数据库是用postgress的docker镜像制作的。

我试过

  • 删除node_modules
  • 重启 postgress 容器
  • npm 安装 pg --save

错误

[2021-11-01T00:48:05.774Z] INFO: Express server started on port: 3000
DriverPackageNotInstalledError: Postgres package has not been found installed. Try to install it: npm install pg --save
    at DriverPackageNotInstalledError.TypeORMError [as constructor] (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/src/error/TypeORMError.ts:7:9)
    at new DriverPackageNotInstalledError (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/src/error/DriverPackageNotInstalledError.ts:8:9)
    at PostgresDriver.loadDependencies (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/src/driver/postgres/PostgresDriver.ts:1118:19)
    at new PostgresDriver (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/src/driver/postgres/PostgresDriver.ts:284:14)
    at DriverFactory.create (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/src/driver/DriverFactory.ts:36:24)
    at new Connection (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/src/connection/Connection.ts:122:43)
    at ConnectionManager.create (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/src/connection/ConnectionManager.ts:61:28)
    at /Users/alexskotner/Documents/GitHub/Aware/BackEnd/src/globals.ts:77:35
    at step (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/node_modules/typeorm/node_modules/tslib/tslib.js:143:27)
    at Object.next (/Users/alexskotner/Documents/GitHub/Aware/BackEnd/node_modules/typeorm/node_modules/tslib/tslib.js:124:57)
Run Code Online (Sandbox Code Playgroud)

包.json

 "pg": "^8.7.1"
Run Code Online (Sandbox Code Playgroud)

类 DatabaseAPI {

private opt: ConnectionOptions = …
Run Code Online (Sandbox Code Playgroud)

postgresql express typeorm typeorm-datamapper node.js-typeorm

7
推荐指数
1
解决办法
3047
查看次数

[attr.disabled]=true 在反应形式 Angular 15 中不起作用

目前,我正在使用 Angular 15 和 Angular 14 作为我使用的反应形式的禁用输入字段[attr.disabled]="disableField ? true : null"

我将 Angular 版本 14 更新到 15 后,此属性不起作用

forms disabled-control disabled-input reactive angular

7
推荐指数
1
解决办法
3640
查看次数

如何使输入`type=file`仅接受图像React

<Input
  id="image"
  type="file"
  accept="image/*"
  onChange={(event) =>
    getBase64(event.target.files[0])
      .then((file) => this.setState({ image: file })
  )}
/> 
Run Code Online (Sandbox Code Playgroud)

但它也接受其他文件,我应该更改什么以使其仅接受图像?

reactjs material-ui

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

非常长时如何在 Visual Studio Code 中复制非类型化函数 (TypeScript) 的推断类型

(见截图) 鼠标悬停时的功能截图

我有一个返回一个非常长的无类型对象的函数,我想复制该对象的推断类型,因为手动操作太长了,然后我想创建它的类/接口,例如:

export class PatientTables {
  emsf: string;
  cadNumber: string;
  // and so on
}
Run Code Online (Sandbox Code Playgroud)

有没有办法从某个地方复制它,因为 Visual Studio Code 似乎已经将它分类在某个地方,正如您在图片中看到的(还有 48 个),我怎样才能让它显示其余部分并复制它?谢谢!

refactoring typescript visual-studio-code angular

6
推荐指数
3
解决办法
751
查看次数

获取“无法设置只有 getter 的属性名称”

不久前,测试脚本运行得非常完美。据我所知,唯一的更改是 URL。

这是有问题的测试之一。请注意,我们已将 URL 替换为假 URL。

我们尝试全新安装 Cypress。我们的支持文件等中没有任何内容。

我在代码中没有尝试设置属性。不管怎样,它似乎在运行我的测试之前抛出错误。

错误是:

"cannot set property name of which has only a getter"
Run Code Online (Sandbox Code Playgroud)

错误截图

"cannot set property name of which has only a getter"
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

TypeError: Cannot set property name of  which has only a getter
    at onError  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:156647:18) From previous event:
    at Object.run  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:170479:13)
    at Object.run  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:156658:15)
    at $Cy.cy.<computed> [as visit]  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:157812:17)
    at __stackReplacementMarker  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:157121:13)
    at Context.runnable.fn  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:158036:21)
    at callFn  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:112788:21)
    at  Test.../driver/node_modules/mocha/lib/runnable.js.Runnable.run  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:112775:7)
    at  https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:164502:28 From previous event:
    at Object.onRunnableRun  (https://[MY_WEBSITE]/__cypress/runner/cypress_runner.js:164487:17)
    at …
Run Code Online (Sandbox Code Playgroud)

cypress

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