小编Alb*_*ert的帖子

如何在nestjs中管理不同的配置环境

我想要一些环境,比如说development, production, test。这些环境应该是独立的,并使用自己的一组配置参数,例如 DB、SERVER_PORT、USER 等。它们不应该位于代码库中,所以我认为它们应该是不同的 .env 文件。也就是说,我应该能够根据活动的环境加载不同的 .env 文件。另外,还不清楚我必须在哪里设置环境切换器。

也许它应该是一个具有 NODE_ENV 参数的单个 .env 文件,该参数可以设置为上述任何值,无论是开发、生产还是测试。根据此参数的值,会自动加载一组必要的配置参数。

我已经阅读了文档,目前对我来说似乎有点令人困惑。

似乎应该有一些配置工厂。

nestjs

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

id 必须是符合指定约束的数字

这是类验证器抛出的错误。这是我的 dto 的代码:

export class UpdateEntryBodyDto {
    @ApiProperty()
    @Type(() => Number)
    @IsNumber()
    id: number;

    @ApiProperty()
    @IsString()
    @IsOptional()
    @Validate(IsUniqueEntryTitle)
    title?: string;
}
Run Code Online (Sandbox Code Playgroud)

我尝试了更多不同的配置,但我遇到了同样的该死的错误。我对这个错误感到完全困惑,无法弄清楚这段代码到底出了什么问题,我按照这里推荐的方式进行操作,但无济于事......

有人可以帮忙吗?

node.js class-validator nestjs

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

结帐时出现 Git 错误:“致命:引用不是树”

当我决定弄清楚为什么我正在从事的项目如此重要时,这一切就开始了。我运行了以下脚本:

git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| sed -n 's/^blob //p' \
| sort --numeric-sort --key=2 \
| cut -c 1-12,41- \
| $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
Run Code Online (Sandbox Code Playgroud)

并找出哪些提交具有最重的文件。接下来,我想看看谁是这些提交的作者以及何时尝试运行以下内容:

git show --stat COMMIT_HASH
Run Code Online (Sandbox Code Playgroud)

我收到一堆官样文章,当我尝试回滚到提交时,我收到上述错误。

所以我的问题是:如何找到提交的作者?

git

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

如何在打字稿中编写错误处理装饰器

控制器的方法之一如下所示:

@httpGet('')
public async getProducts(@queryParam() queryBody: object): Promise<Products[]> {
    return this.productService.getProducts(queryBody);
}
Run Code Online (Sandbox Code Playgroud)

我想要一个装饰器,可以@Catch()在该方法上使用(如果像这样调用那么它应该是一个装饰器工厂),它的职责是捕获来自服务方法的错误/异常。我只是想将错误处理逻辑与控制器中的逻辑解耦。

typescript

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

是否可以将参数传递给 nestjs 守卫?

我试图想出一个有点可重用的守卫,看起来我需要将一个字符串参数传递给一个守卫。在nestjs中可以实现吗?

nestjs

7
推荐指数
2
解决办法
1908
查看次数

如何在 TypeORM 中使用 QueryBuilder 更新具有关系的实体

我有UserEntityAddressEntity,它们是相关的OneToOne,即一个用户可能只有一个地址。UserEntity有字段firstName, secondName, addressAddressEntity有字段countrycity.

如果我想更新UserEntity而不对其关系进行更新,我会这样做:

      await entityManager.getRepository(UserEntity)
                         .createQueryBuilder('users')
                         .update(UserEntity)
                         .set(updateUserObject)
                         .where('users.id = :userId', { userId })
                         .execute();
Run Code Online (Sandbox Code Playgroud)

其中updateUserObject由请求正文组成。也就是说,如果我需要更新firstName,该对象将如下所示:{ firstName: 'Joe' }。现在不清楚的是,如果我有以下内容,如何使用该构建器updateUserObject

{
    firstName: "Bob",
    address: {
        "city": "Ottawa"
    }
}
Run Code Online (Sandbox Code Playgroud)

官方文档没有解决此类情况。

node.js typeorm nestjs

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

二进制响应内容,请求 lib

我正在阅读有关请求库的文档,它似乎已经过时了或什么的。我一步一步地尝试了那里显示的所有示例,但在尝试运行以下代码时遇到了问题:

import requests
from PIL import Image
from StringIO import StringIO

response = requests.get('http://www.github.com')
i = Image.open(StringIO(response.content))
Run Code Online (Sandbox Code Playgroud)

那篇文章来自官方文档。我得到的第一个错误是 ImportError: no module named StringIO

好的,然后我发现该模块不再存在,为了导入 StringIO 必须编写from io import StringIO. 我就是这么做的。再次尝试运行代码,这次它出错了“TypeError:initial_value must be str or None, not bytes”。我到底做错了什么?我不遵循......我所做的只是尝试运行官方文档中的代码......我一无所知。

编辑:是的……要使用 PIL,必须安装 Pillow。

python

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

如何在 typeorm 中克隆实体

我有一个CategoryEntityEntryEntity。类别可以包含条目。我的任务是克隆属于一个类别的条目并将其移动到另一个类别。

使用 queryRunner 我可以编写以下代码:

        await queryRunner.manager.getRepository(CategoryEntity)
                                 .createQueryBuilder()
                                 .relation(CategoryEntity, 'entries')
                                 .of(category)
                                 .add(entry);
Run Code Online (Sandbox Code Playgroud)

但它只会将所选条目复制粘贴到所选类别,也就是说,插入的实体将具有相同的 id 等,所以如果我删除父级子级(插入的实体也会被删除),但它不是我正在寻找的行为。我需要一个完整的克隆,所以我可以这样做:

        const { id, ...updateEntryBody } = entry;
        const newEntry = await this.entryRepository.save(updateEntryBody);
        await queryRunner.manager.getRepository(CategoryEntity)
                                 .createQueryBuilder()
                                 .relation(CategoryEntity, 'entries')
                                 .of(category)
                                 .add(newEntry);
Run Code Online (Sandbox Code Playgroud)

它将创建该条目的克隆,但这里还有一个与图像有关的问题条目。也就是说,条目可以包含图像。因此,我认为,我必须对条目可能包含的一大堆图像执行类似的操作。我一点也不喜欢这个主意。

我的问题是:有没有更好的方法来处理这个问题?

typeorm

5
推荐指数
0
解决办法
3742
查看次数

在C++中索引整数指针

我是C++的初学者,试图通过编写尽可能多的各种小程序(programmlets)来了解我遇到的每个新概念.所以我刚刚编造了以下代码:

#include <iostream>
using namespace std;

int main(){
int inumbers[] = {1 ,2 , 3, 4, 5};
int *p;
int i;

p = inumbers;

for(i = 0; p[i]; i++) cout << p[i] << '\n';

return 0;

}
Run Code Online (Sandbox Code Playgroud)

我无法理解一个看似简单的事情:编译器如何"知道"何时停止递增循环变量"i"?令人惊讶的是,代码确实按照预期的方式工作.

c++

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

配置不正确:请求的设置为INSTALLED_APPS,但未配置设置

我正在尝试使MongoDB和Django以我想要的方式彼此相处。这是我尝试从rest_framework_mongoengine导入视图集时遇到的错误。

整个错误如下所示:

ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

找不到settings.py或什么?如果是这样,我不知道为什么!即,为什么没有其他模块出现此问题呢?

这是我的 INSTALLED APPS

INSTALLED_APPS = [
    'rest_framework',
    'rest_framework_mongoengine',
    'mongoengine.django.mongo_auth',
    'rest_framework.authtoken',
    'corsheaders',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_extensions',
    'core',
    'core.essences.user',
    'core.essences.user.authentication',
    'core.essences.test_result',
]
Run Code Online (Sandbox Code Playgroud)

django restframeworkmongoengine

4
推荐指数
3
解决办法
6311
查看次数