使用时如何应用全局管道Test.createTestingModule?
通常,当应用程序安装在main.ts.
beforeEach(async done => {
    const moduleFixture: TestingModule = await Test.createTestingModule({
      imports: [AppModule]
    }).compile()
    app = moduleFixture.createNestApplication()
    await app.init()
    done()
  })
Run Code Online (Sandbox Code Playgroud) 我有一个具有属性的ts接口(用于apollo-client@v2 gql查询)__typename。在现有的代码库中,存在大量数据对象的“补水”,__typename以“魔术字符串”的方式重新添加接口的类型。我想知道是否有一种方法可以通过引用字符串类型,ts或者有一种方法可以避免通过现有类型或缓存系统执行此操作。
一个示例(生成的)界面:
export interface SomeNode {
  __typename: "SomeNode";
  id: string;
  name: string;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将“SomeNode”作为值和类型获取?
const newObject: SomeNode = {
  __typename: string(NewNode.__typename) as NewNode.__typename,
  id: 'some value',
  name: 'some name'
}
Run Code Online (Sandbox Code Playgroud)
目前我们这样做:
const newObject: SomeNode = {
  __typename: "NewNode" as "NewNode",
  id: 'some value',
  name: 'some name'
}
Run Code Online (Sandbox Code Playgroud)
这是一个简化的示例,用法确实看起来很奇怪。但我正在寻找一种方法来完成这个特定的事情。如果没有这个,我们最终会在整个代码库中重新创建已经生成的类型。
如何对使用钩子的功能组件进行单元测试(使用jest和) ?enzymeuseReactiveVar
我应该useReactiveVar用 来模拟钩子jest吗?
我们有一个像这样的组件:
import PropTypes from 'prop-types';
import React from 'react';
export default class Tooltip extends React.Component {
  static propTypes = {
    /**
     * Some children components
     */
    children: PropTypes.node.isRequired,
    /**
     * Some property
     */
    someProp: PropTypes.string,
   }
   .....
}
Run Code Online (Sandbox Code Playgroud)
是否有一些工具可以为打字稿声明文件启用类型生成,以生成类似以下内容的内容:
interface ITooltip {
    children: React.Node,
    someProp: string
}
Run Code Online (Sandbox Code Playgroud)
一些参考:
我正在寻找一种方法来使我的测试用例使用sequelize ORM 事务性。这已经在sequelize github issues上进行了讨论:
寻找一种方法来执行以下操作:
describe('My test case', () => {
    beforeEach(() => {
        ... create a transaction
    })
    afterEach(() => {
        ... roll back the transaction
    })
    ..... RUN isolated tests
})
Run Code Online (Sandbox Code Playgroud)
我习惯了 Django ORM,它在测试用例中默认执行此操作(其中包括自动管理迁移)。
我想连接到基于子域(多租户)的任何数据库,但我不知道该怎么做。
我的代码在应用程序启动时运行,但我不知道如何根据子域更改数据源。
PS:我在每个请求上都创建了中间件,但我不知道如何更改源。
我的数据库有以下代码:
import { connect, createConnection } from 'mongoose';
import { SERVER_CONFIG, DB_CONNECTION_TOKEN } from '../server.constants';
 const opts = {
    useCreateIndex: true,
    useNewUrlParser: true,
    keepAlive: true,
    socketTimeoutMS: 30000,
    poolSize: 100,
    reconnectTries: Number.MAX_VALUE,
    reconnectInterval: 500,
    autoReconnect: true,
  };
export const databaseProviders = [
  {
    provide: DB_CONNECTION_TOKEN,
    useFactory: async () => {
      try {
        console.log(`Connecting to ${ SERVER_CONFIG.db }`);
        return await createConnection(`${SERVER_CONFIG.db}`, opts);
      } catch (ex) {
        console.log(ex);
      }
    },
  }
];
Run Code Online (Sandbox Code Playgroud)
我想根据子域(多租户)在每个请求中更改我的数据源
你如何使用新的 swagger 插件?我的编译器选项中有它:
  "compilerOptions": {
    "plugins": ["@nestjs/swagger/plugin"]
  }
Run Code Online (Sandbox Code Playgroud)
我nest start按照描述运行应用程序:https : //docs.nestjs.com/recipes/swagger#migration-to-40
然而,似乎没有自动魔法文档发生。
我正在尝试使用cordova-plugin-googleplus插件。
我读过其他文章,说要将该插件添加为提供程序,并且尝试这样做无济于事。
当我尝试访问登录页面时,出现带有堆栈跟踪的错误:
未发现运行时错误(承诺):错误:没有GooglePlus提供商!错误:没有GooglePlus提供商!在ReflectiveInjector_处的noProviderError(http:// localhost:8100 / build / vendor.js:1628:12)处,在injectionError(http:// localhost:8100 / build / vendor.js:1590:86)处。在ReflectiveInjector处抛出throwOrNull(http:// localhost:8100 / build / vendor.js:3129:19)。ReflectiveInjector上的getByKeyDefault(http:// localhost:8100 / build / vendor.js:3168:25)。ReflectiveInjector .get(http:// localhost:8100 / build / vendor.js:2969:21处的getByKey(http:// localhost:8100 / build / vendor.js:3100:25)),位于AppModuleInjector.getInternal(ng:///AppModule/module.ngfactory.js:615:44)的AppModuleInjector.get(ng:///AppModule/module.ngfactory.js:332:145)。在LoginPageModuleInjector.NgModuleInjector.get 获取(http:// localhost:8100 / build / vendor.js:3936:44)(http:// localhost:8100 / build / vendor.js:3937:52)
堆栈跟踪
Error: Uncaught (in promise): Error: No provider …Run Code Online (Sandbox Code Playgroud) 我收到错误消息:
模板解析错误:找不到管道“ amDateFormat”
这是我的 app.module.ts
import { NgModule } from '@angular/core';
...
import { MomentModule } from 'angular2-moment';
...
@NgModule({
  declarations: [
    MyApp
  ],
  imports: [
    ...
    MomentModule,
    ...
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp
  ],
  providers: [
    ...
  ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
然后在service-booking-details.ts执行以下操作:
import { Component} from '@angular/core';
import { IonicPage, NavController, NavParams} from 'ionic-angular';
import { MomentModule } from 'angular2-moment';
...    
@IonicPage()
@Component({
  selector: 'page-item-detail',
  templateUrl: 'service-booking-detail.html'
})
export class ServiceBookingDetailPage {
  service: …Run Code Online (Sandbox Code Playgroud) 有没有办法将所需的标头全局添加到 NestJS 中的所有端点/控制器?
有一个控制器绑定装饰器@ApiHeader。有没有办法将其应用于所有端点?
我有一个基本的控制器设置:
@Controller('')
export class AController {
 @Get(':id')
  async getThing(@Param('id', ParseUUIDPipe) id: string): Promise<RegisterRead[] | IntervalRead[]> {
      return id
  }
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
{
    "statusCode": 400,
    "error": "Bad Request",
    "message": "Validation failed (uuid vundefined is expected)"
}
Run Code Online (Sandbox Code Playgroud)
 nestjs ×5
typescript ×3
angular ×2
ionic2 ×2
javascript ×2
jestjs ×2
apollo ×1
enzyme ×1
mongodb ×1
multi-tenant ×1
node.js ×1
react-apollo ×1
react-hooks ×1
reactjs ×1
sequelize.js ×1
swagger ×1