小编JC9*_*C97的帖子

测试(ExpressJS + TypeScript + Vitest):tsconfig 设置在 Visual Studio Code 中不起作用

我将直接跳到一个例子:

我有以下(简化的)项目结构:

src/
    app.ts
test/
    integration/
        example.spec.ts
    tsconfig.json
tsconfig.json
Run Code Online (Sandbox Code Playgroud)

根目录tsconfig.json包含以下设置:

src/
    app.ts
test/
    integration/
        example.spec.ts
    tsconfig.json
tsconfig.json
Run Code Online (Sandbox Code Playgroud)

tsconfig.json文件夹内部包含tests/以下设置:

{
  "extends":"@tsconfig/node16/tsconfig.json",
  "compilerOptions": {
    "rootDir": "./src",
    "outDir": "./build",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "resolveJsonModule": true,
    "noEmitOnError": true
  },
  "include": [
    "./src/**/*.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在我基本上有两个问题:

  1. 从 pnpm 运行基本示例测试可使用以下脚本cd ./test && vitest run:然而,在 vscode 中,它似乎没有解析内部 tsconfig,所以我总是在 IDE 中遇到类型错误:

IDE错误1 IDE错误2

  1. 每当我想app从 src 文件夹导入时,我都会收到以下与 typeORM 相关的错误: 应用程序导入错误

对于第一个问题,我猜测它要么是 vscode 中的错误,要么需要在某个地方正确配置。但我找不到太多关于它的信息。对于第二个问题,我可能遗漏了一些东西(首先构建,在该构建上运行测试?)。

也许我正在尝试一些根本错误的东西,但我想知道如何正确设置可测试的 ExpressJS TypeScript 应用程序。

express typescript visual-studio-code vitest

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

Bootstrap 4:自定义复选框边框

我正在尝试自定义复选框的颜色.我按照文档,然后想出了一种改变背景的方法:

.custom-control-input:checked ~ .custom-control-indicator {
        background-color: #ffa500;
}
Run Code Online (Sandbox Code Playgroud)

如果你单击复选框,还有一个蓝色边框(我认为)在盒子周围填充,但即使进行了一些研究,我也无法找到如何更改该边框的颜色.有人可以帮帮我吗?我做了一个小提琴来展示我拥有的东西.

有谁知道如何改变边界?

提前致谢!

html css twitter-bootstrap bootstrap-4

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

Turborepo 设置开发管道的执行顺序

我有以下场景:

/apps
    /api
    /web
/packages
    /shared
Run Code Online (Sandbox Code Playgroud)

apiweb有依赖性shared。它们都是通过workspace: *using来安装的pnpm

我的turbo.json看起来像这样:

/apps
    /api
    /web
/packages
    /shared
Run Code Online (Sandbox Code Playgroud)

所有这些都有一个dev启动观察程序和热重载的脚本。但问题是,当我想运行时turbo run devapi无法启动,因为shared尚未启动。

有没有办法设置优先级shared

我无法使用dependsOn,因为它会等待开发脚本shared完成,但它不会,因为它是一个观察者。

monorepo pnpm turborepo

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

在 Nodemailer 中使用 OAuth2 时 Gmail API“用户名或密码无效”

我正在尝试将 gmail smtp 与最新版本的 nodemailer 一起使用。我已完成此处描述的步骤。发送邮件时我仍然收到以下错误消息:

错误:无效登录:535-5.7.8 用户名和密码不被接受

这很奇怪,因为我从未尝试使用密码/用户名登录,但我使用 OAuth2 代替:

    transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
            type: 'OAuth2',
            user: 'hello@company.com',
            clientId: '<clientId>.apps.googleusercontent.com',
            clientSecret: '<clientSecret>',
            accessToken: '<accessToken>',
            refreshToken: '<refreshToken>',
        }
    });

     transporter.sendMail({
        from: from,
        to: to,
        subject: subject,
        text: message,
        html: htmlMessage
    }, function (err, data) {
            if (err) {
                console.log(err);
                console.log("======");
                console.log(subject);
                console.log(message);
            } else {
                console.log('Email sent:');
                console.log(data);
            }
    });
Run Code Online (Sandbox Code Playgroud)

有谁知道我错过了什么?我尝试执行所有这些步骤来生成这些令牌 3 次,所以我很确定所有凭据都已正确填写。

提前致谢

node.js nodemailer gmail-api

5
推荐指数
1
解决办法
1403
查看次数

Kubernetes 证书管理器 GoDaddy

我正在尝试将 SSL 应用到我的 kubernetes 集群(生产和登台环境),但目前仅在登台上。我成功安装了cert-manager,由于我有5个子域,我想使用通配符,所以我想用dns01配置它。问题是,我们使用 GoDaddy 进行 DNS 管理,但目前(我认为)证书管理器不支持它。有一个问题(https://github.com/jetstack/cert-manager/issues/1083)以及一个支持此问题的 PR,但我想知道是否有解决方法可以将 godaddy 与 cert-manager 一起使用,因为关于这个主题的活动不多吗?我想使用 ACME,这样我就可以使用 Let's 加密证书。

我对 kubernetes 相当陌生,所以如果我错过了什么,请告诉我。

是否可以使用 ACME 之外的其他类型的发行者进行加密?有没有其他方法可以使用 GoDaddy DNS 并使用 kubernetes 进行加密?

目前我没有任何 Ingress,只有 2 个面向外部的服务。一个前端和一个 API 网关作为 LoadBalancer 服务。

提前致谢!

ssl kubernetes cert-manager

5
推荐指数
1
解决办法
6356
查看次数

如何使用Nuxtjs在服务器端实现Auth0?

我有一个Nuxt应用,其身份验证已在通用模式下运行。

我正在尝试将身份验证服务转换为Auth0。我遵循Vue快速入门,但是我发现auth0-js是一个客户端库,因为它使用了很多“窗口”的东西,而Nuxt的服务器端没有这些东西。

但是,我通过使它成为客户端插件并包装所有功能(即在生命周期挂钩中调用authservice)进行process.client检查来使其工作。之所以可以使用“某种”,是因为在未登录时进入受保护的页面时,它会在刷新页面之前将其闪烁,然后重定向到登录页面(因为它也在服务器端呈现,但是检查仅在将其交付给客户端时才进行)。我认为是客户端)。

我现在的问题是:
如何将支票也添加到服务器端?(或至少确保在重定向之前不刷新受保护的页面)。

到目前为止,我已经尝试过:

  • 将有效负载和登录状态保存在存储中,并签入一些自定义中间件,但这并不能解决问题。

另外,在我看来@ nuxt / auth已经过时,或者还有nuxt auth0示例。当我使用新的auth0通用时,它使用auth0-lock。

有人对如何解决此问题有建议吗?提前致谢!

authentication auth0 ssr nuxt.js

5
推荐指数
1
解决办法
330
查看次数

.NET Core 2.1 DbContext ObjectDisposeException 依赖注入

我正在使用 .NET Core 2.1 和实体框架制作一个 n 层 MVC 应用程序。还有一个托管 MQTT 队列,我的应用程序作为客户端进行侦听。我还使用依赖注入。这非常有效,直到一条消息被推送到队列并且我想将该消息保存到数据库。一旦发生这种情况,我会收到以下ObjectDisposedException错误消息:

无法访问已处置的对象。导致此错误的一个常见原因是处置从依赖项注入解析的上下文,然后尝试在应用程序的其他位置使用相同的上下文实例。如果您在上下文上调用 Dispose() 或将上下文包装在 using 语句中,则可能会发生这种情况。如果您使用依赖项注入,则应该让依赖项注入容器负责处理上下文实例。对象名称:“xxxDbContext”。

我可以单击“继续”,之后应用程序将继续工作。他只在从队列收到的第一条消息上抛出异常。控制器/管理器/存储库的所有其他操作都可以正常工作。我的代码如下:

启动.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddDefaultIdentity<User>()
            .AddEntityFrameworkStores<xxxDbContext>();

    services.AddDbContext<xxxDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")
    ));

    // Some identity configuration omitted here

    services.AddScoped<IIdeationRepository, IdeationRepository>();
    services.AddScoped<IIdeationManager, IdeationManager>();
    // Some other DI configuration omitted as well.
}

public Configure(IApplicationBuilder app, IHostingEnvironment env,
    IApplicationLifetime applicationLifetime, IServiceProvider serviceProvider)
{
    // Start MQTT
    var broker = new MqttBroker(serviceProvider.GetService<IIdeationManager>(),
        serviceProvider.GetService<IConfiguration>());

    // On application exit terminate MQTT to make sure the connection …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection asp.net-core

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

分离项目时,MVVM会显示来自VM的新窗口

我的问题涉及到创造了一千零一个主题的问题,如果我忽略了我的问题的答案,我很抱歉,但就我看来,没有人能真正回答我的问题.例如: 在MVVM WPF中打开新窗口

如果您只使用一个WPF项目(包括模型,虚拟机和视图),那么答案是可以的,但是因为我正在学习如何以正确的方式实现MVVM(我已经多次阅读,最佳实践是创建单独的类lib (dll's)对于模型,视图模型和单独的gui项目)似乎在我眼中不起作用,因为如果我想创建一个像IWindowService这样的界面(在之前的url上描述,也在这里,不可能访问Window或Control类因为那时我应该引用gui项目,并且模式的整个目标都会被破坏.

所以我的问题是如何显示一个新的窗口(带有一个新的viewmodel),例如MainViewModel,同时尊重松散耦合的MVVM原则和单独的项目.

我正在努力实现的更深入的示例:

我有以下结构:

MODEL(dll项目)
     简介

VIEWMODEL(DLL项目)
     MainViewModel
     AddProfileViewModel

VIEW(WPF)(exe项目)
     MainWindow
     AddProfileWindow

我打开MainWindow,我想按下AddProfile按钮,然后AddProfileWindow需要显示附加的AddProfileViewModel.

c# wpf design-patterns mvvm

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

SignalR .NET Core:写入消息失败。正在中止连接。值不能为空。(参数“输入类型”)

我正在使用 SignalR 传输一些实时数据。我可以完美地连接我的 js 客户端,但是只要我调用一个方法,只有当我使用 signalR 的调试日志时,我就会收到下面的错误(否则它只会Error: Invocation canceled due to the underlying connection being closed.在调用时抛出)。如果我在调用该方法的中心放置断点,他会遍历它,但不知何故我仍然遇到这个隐藏的错误。

dbug: Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher[1]
      Received hub invocation: InvocationMessage { InvocationId: "0", Target: "WatchSimulations", Arguments: [ System.Collections.Generic.List`1[System.Guid] ], StreamIds: [  ] }.
Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher: Debug: Received hub invocation: InvocationMessage { InvocationId: "0", Target: "WatchSimulations", Arguments: [ System.Collections.Generic.List`1[System.Guid] ], StreamIds: [  ] }.
dbug: Microsoft.AspNetCore.SignalR.HubConnectionContext[6]
Microsoft.AspNetCore.SignalR.HubConnectionContext: Debug: Failed writing message. Aborting connection.

System.ArgumentNullException: Value cannot be null. (Parameter 'inputType')
   at System.Text.Json.JsonSerializer.Serialize(Utf8JsonWriter writer, Object value, Type inputType, JsonSerializerOptions …
Run Code Online (Sandbox Code Playgroud)

c# serialization signalr asp.net-core

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