我曾试图在NestJs中向卡夫卡发表文章
async publish<T extends IEvent>(event: T) {
await this.client.connect();
await this.client.send('topic', event);
}
异步发布(事件:T){
等待此消息。client.connect();
等待这个.client.send('topic',event);
}
但尚未找到正确的方法,dispatchEvent
我正在使用nest.js,并试图混淆dist文件夹中的代码。我尝试了各种解决方案,但似乎都不管用。当我引导服务器(main.js文件)时,它们都会失败
有什么推荐的工具可以正常使用吗?由于Nest如何处理typescript反射和类名,混淆通常会导致更改类的名称,从而使反射系统无法以相同的方式工作。通常,您不必担心混淆服务器端代码,因为它不是公开可见的。由于Nest如何处理typescript反射和类名,混淆通常会导致更改类的名称,从而使反射系统无法以相同的方式工作。通常,您不需要担心混淆服务器
我有一个使用nestjs和typeorm的应用程序。
在开发模式下运行时,一切正常
在vscode中调试时发生错误
launch.json:
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch&
我正试图通过以下一些文档为我的NestJS应用程序设置配置:
配置:
字体:
我已使用以下值将.env文件添加到项目的根目录中(与package.json的级别相同):
DB_URL=localhost
DB_USER=root
DB_PASSWORD=root
DB_NAME=test_db
在我的app.module.ts中,我导入以下模块:
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@n
我正在编写一个NestJS应用程序。一些端点支持排序,例如http://127.0.0.1:3000/api/v1/members?sort=-id&take=100这意味着按id降序排序
此参数作为@Query参数到达,并传递给我的服务。此服务将其转换为TypeORM使用的对象:
{
id: 'DESC'
}
我不想每次需要排序时都手动调用此转换方法
我尝试了一个拦截器,但这个拦截器无法轻松地将请求参数更改为所需的对象
一个管道工作了,但是我仍然需要为每个端点定义添加@Query(new
我正在试图找出为什么会出现以下错误:
Nest无法解析UniqueInteractionService(?)的依赖项。
请确保索引[0]处的参数依赖关系为
在SharedModule上下文中可用
我的班级:
sharedModule.ts:
import {Module, Global} from '@nestjs/common';
import {InteractionsService} from "./elasticsearch/interactionsService";
import {U
我试图在云上运行我的nest应用程序,但向它发送请求时不会返回任何结果
npm运行构建
npm运行开始:prod
工作正常,没有错误
但当我通过邮递员发送请求时,它只显示发送
尝试使用curl也同样不会返回任何结果
相同的代码在我的本地主机上运行良好您的代码如何确定要使用的端口?如果您硬编码了端口号,很可能这不是您的云提供商正在使用的端口。谢谢您的回复beast,但我确保我正在收听所有可用的端口,以防我的硬编码端口不可用。事实上,我的服务器上已经运行了一些东西。我想这就是问题的原因。我更改了配置
我正在开发一个NestJS应用程序,在这个应用程序中,控制器或任何http请求都不会调用我的服务。相反,cron调度调用一些服务来定期获取数据
在这种情况下,处理错误的最佳方法是什么?我实现了一个“捕获所有”异常过滤器,但当我的服务被“内部”调用(不是由控制器/请求调用)时,错误不会被捕获,并且我有一个未捕获的承诺错误。请参见我的问题:
此装饰器捕获类方法的错误并记录它们。日志部分不是必需的,您可以实现自己的错误处理逻辑
从'@nestjs/common'导入{Inject};
从“../../
我在两个实体之间有一个manytomy关系,我不知道如何从联接表“device\u users\u user”中获取数据
您不能使用TypeormAPI直接查询联接表(除非您尝试进行原始查询,但我认为这不是您想要实现的……我不推荐这样做,因为表名可能会更改……)
但是,当您使用@manytomy声明关系时,您可以使用查询生成器加载设备的用户,例如:
const devicesWithUsers=wait deviceposition.createQueryBuilder('device'))
.
我今天从6->7升级了我的Nest应用程序。在解决了所有的typescript错误之后,我在启动时出现了奇怪的行为
[Nest] 15484 - 05/01/2020, 3:33:29 PM [NestFactory] Starting Nest application...
[Nest] 15484 - 05/01/2020, 3:33:29 PM [InstanceLoader] GraphqlClientModule dependencies initialized +13
使用(哪个使用)
我能够创建一个内部(从外部隐藏)url的代理,并得到预期的响应
然而,由于这是一种中间件方法,所以我无法将任何现有的保护(例如,JWT、角色等)应用于此代理
提到防护在每个中间件之后运行
如果不将所有的保护重新实现为中间件,有没有办法用现有的保护来保护这个代理路由
提前感谢。不可能使用Nest Guard,正如您所说,这是一个中间件。保护代理路由的唯一方法是在安装代理中间件之前为代理路由添加中间件。如果您在main.ts中设置代理中间件,它将如下所示
异步函数引导(){
con
有没有办法把这个密码转过来
export class person {
@IsString()
@Column('text')
name: string
@IsOptional()
@IsString()
@Column('text')
description?: string
}
变成类似这样的东西
export class person {
name: string
description?: string
}
我知道需要decorator,但当每个
我正在使用Nestjs框架开发我的弹性服务应用程序。
我在代码中使用“@nestjs/elasticsearch”库,我只是尝试建立数据库连接并在所有其他模块中使用。请在这里找到我的代码示例
我的应用程序模块如下所示
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ConfigModule } from './config/config.m
我想知道如何根据配置服务提供商来配置特定端口?例如,我想在我的生产环境中听8500,但在我的登台环境中听8080
以及如何允许cors打开,因为当我连接到不同域中的套接字服务器时,它显示已被cors策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态,而此代码片段可能解决了问题,确实有助于提高你的文章质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。
const options = {
cors: {
origin: ["exa
我正在编写一个验证管道,它需要从令牌获取某些信息,因此我必须以某种方式将头传递给验证管道。您似乎无法访问PipeTransform中的请求实例。如果需要访问请求实例,请使用
激活
上下文:ExecutionContext,
:布尔值|承诺|可观察{
const request=context.switchToHttp.getRequest;
返回validateRequestrequest;
}
您似乎无法访问PipeTransform中的请求实例。如果需要访问请求实例,请使用
激活
上下文:E
我有一个应用程序,我根据开放式API规范将API响应模式定义为普通javascript对象。目前,我正在将其传递给@nestjs/swagger中的ApiResponsedecorator,如下所示:
类CATS控制器{
@得到()
@蜂群反应({
现状:200,
schema:catSchema//plain从另一个文件导入的js对象
})
getAll(){}
}
这很有效。但是,输出openapi规范包含每个使用catSchema的端点的详细模式相反,我希望输出的swagger文件在组件
很抱歉,这可能是一个非常业余的问题。来自拉雷维尔,这仍然让我很困惑,我只是不明白需要什么
我有一个user.repository.ts文件和一个location.repository.ts文件。每个都有自己的模块、控制器和服务。我已经成功地为每个实体创建了CRUD操作,但现在我正在努力建立多对多关系
在我的user.repository.ts文件中,我试图保存一个相关的(多对多)存储库:
// user.repository.ts
user.locations = await this.loc
我正在使用TypeORM从Rails迁移到NestJs。
由于历史原因,Rails中的表名和列名都被屏蔽了——我不想把这个讨厌的东西复制到我们的NestJs/React端
我可以在NestJS(typeorm))中创建名为firstName但映射到数据库中名为first_name的列的实体字段吗
我的桌子
+-------------+--------------+----------------------------+
|系统用户|
+-------------+--------------
在我的代码中,我在我的项目中生成了一个“downloads”文件夹,由于我使用了nest start--watch命令,我总是会得到“检测到文件更改。正在启动增量编译…”如何才能排除live reload检查下载文件夹?确定我找到了解决方案:
"exclude": ["downloads"],
"include": ["src"]
我有三个实体-公司,用户,访问组。我需要限制用户访问具有AccessGroup的公司
用户和访问组是多对多,公司和访问组是多对多
例如,用户“Murphy”与Accessgroup“Detroit”和“Delta City”有关系,而公司“OCP”与Accessgroup“Detroit”有关系
我如何才能提取与用户具有相同访问组的公司?我找到了解决方案,应该使用TypeORM查询生成器
首先,获取用户与之相关的accessgroups ID。
例如,假设用户Murphy包含在带有agid:[1
我想确切地知道orm类型中的一对多关系是什么
@oneTomany
该命令本身是否为一列,且该列的值保存在另一个表中
它的具体参数是什么?一对多关系用于将表中的一行链接到另一个表中的多行
例如,如果您有一个用户表和文章表,并且希望将文章链接到一个用户,那么它非常有用
使用TypeOrm,您需要在用户实体中定义@OneToMany()装饰器
@OneToMany(()=>ArticleSenty,articleEntity=>articleEntity.user)
@JoinColumn()
我有一个控制器,它有两个标记为Get()的函数,都带有@Query参数来接收数据。但只有给定顺序中的第一个被调用,即使我通过它发送的数据应该调用第二个。我的代码怎么了
如前所述,我已经切换了和的位置,但总是调用第一个函数
@Controller('pets')
export class PetsController {
constructor(private readonly petsService: PetsService) {}
@Get()
findByCountry(@Q
我将我的nestjs项目从v6.0.0升级到v6.10.11,此后该服务的内存消耗不断增加,直到达到极限,然后服务崩溃。
我降级回6.0.0,内存问题停止
我的docker在AWS上使用节点版本12.4.0运行
有人遇到过这个问题吗
提前谢谢
更新
这个问题在流动的流程中重现:
我有一个Auth服务,它用请求作用域修饰(意味着它是在每个请求中创建的),这个服务有一个记录器服务注入到构造函数中,记录器服务没有作用域。
一旦我移除记录器服务的注入,泄漏就消失了
然而,在6.10.0中,这并没有发生
在测试Nest.JS控制器时是否可以使用ClassSerializedInterceptor
我们的问题是ClassSerializedInterceptor作为应用程序的一部分可以正常工作,但当控制器作为单元测试的一部分实例化时,它不会运行。我尝试提供ClassSerializeInterdeptor作为测试模块的一部分,但没有成功
示例代码:
试验
作为请求流的一部分测试拦截器只能在e2e和部分集成测试中完成。您需要将一个supertest实例设置为并发送请求,以确保ClassSeriali
我正在开发一个nestjs应用程序,并使用JwtStrategy进行身份验证
我通过唱一些信息来生成访问令牌,包括有效负载。sub:
token.service.ts
async createAccessToken(
payload: IJwtPayload,
expires = this.expiresInDefault,
): Promise<LoginResponseVm> {
... other codes ....
// sign
所以我有一个关于nestjs和使用TypeORM的项目。我的情况是,我有一个用户,它可能与UserSubscrption有关系。默认查找查询按原样向用户添加了所有订阅。所以现在我想找到一个特定的订阅,例如last added。因此,我构建了这个查询:
const query = this.createQueryBuilder("user")
.leftJoinAndSelect("user.settings", "settings")
.leftJoinAndSelect
我使用NestJS实例作为微服务(没有HTTP)
我需要在引导初始化之后使用一些业务逻辑运行组件的无限循环方法
最好的方法是什么
src/main.ts
import {NestFactory} from '@nestjs/core';
import {ApplicationModule} from './app.module';
import {Transport} from '@nestjs/microservices';
async function bootstrap() {
是否有任何方法可以实现一个自定义保护,允许访问与存储的ip匹配的用户。为此,每个用户在数据库中都有一个关联的ip。通过每个canActivate函数使用的ExecutionContext访问请求。要获取请求,您需要将上下文更改为http,然后获取请求。可以这样做:context.switchToHttp().getRequest()。因此,ip通常是顶级属性。请记住,IP不是静态的,可能会发生更改是的,是的。主要问题是我无法从警卫处访问服务,无法将模块转换为全局。我找到了另一种方法,通过对之前运
我在CockroachDB中存储一个实体,其中一列是存储在JSONB列中的DTO。DTO中的一个属性是日期,但当我从数据库加载它时,它是一个字符串
这里是我的实体:
@Entity('Entity')
export class Entity {
@Column('jsonb', { nullable: true })
@IsOptional()
@Type(() => StateDto)
@ValidateNested()
state: S
我不熟悉typeorm和nestjs,但是我想知道是否有可能删除一对多不动产,例如,当我建立关系时,它看起来是这样的:
id | title | relationId
1 test 2
但是,我希望将关系恢复到原始状态,如:
id | title | relationId
1 test [null]
然后用一个新的一对多关系更新,如:
id | title | relationId
1 test 4
老实说,我不确定这是否可能您可以在sa
标签: Nestjs
dtodata-transfer-objects
我对NestJS完全陌生。我已经看到,在NestJS中,创建了一个模型来指定数据的细节,例如,当创建简单的任务管理器时,当我们想要指定单个任务的外观时,我们在模型中指定它(下面的示例):
然而,我后来遇到了DTO,在这里再次描述了数据的形状。我的理解是,在传输数据时使用DTO,即它描述您将发布或获取的数据类型
我的问题是,当我已经在使用DTO来描述数据的形状时,为什么还要使用模型呢
此外,我还了解到,使用DTO,我们可以获得单一的真实来源,如果我们意识到数据结构需要更改,我们不必在控制器和服务文
我开始玩nestjs,从我以前的express/mongoose项目迁移过来,紧接着nestjs文档中的mongodb/serializations章节,我立即撞上了围栏。我已经准备好了下面的模式
/////// schema
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import * as mongoose from 'mongoose';
import { Exclude, Expose } from 'c
标签: Nestjs
typeormconfigmodule
我想用NestJs和TypeORM创建一个RESTAPI。在myapp.module.ts中,我加载TypeForm模块
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'postgres',
password: 'postgres',
database:
当我通过CLI创建一个新的NestJS项目时,它会自动为项目添加更漂亮的东西。我不喜欢用更漂亮的。如何创建新的NestJS项目而不使用更漂亮的工具?我的机器上甚至没有安装prettier。prettier是作为应用程序的依赖项安装的。没有不安装它的选项,至少通过Nest CLI。尽管如此,你还是有一些选择
创建您自己的原理图或GitHub模板,允许您绕过Nest的标准安装(您每次都必须克隆它,但这至少是一个选项)
使用--skip install标志,并在删除prettier依赖项和prett
标签: Nestjs
organizationcode-organizationproject-organization
假设有两个实体:Cat和Photo。每张照片可以有一只猫,但每张猫有很多照片。用户应能够创建、阅读、更新和删除猫和猫的照片。因此,我为以下端点提供了GET、POST、PUT和DELETE方法
/cat
/cat/:id
/cat/:id/photo
/cat/:id/photo/:id
我对如何组织代码感到困惑。我看到了不同的模块化选项
选项1:将所有东西都扔到cat模块内
└── cat
├── cat.controller.ts
├── cat.entity.ts
标签: Nestjs
winstonexpress-winston
我面临着与wherelogger.info('你好,你好吗?')相同的问题是结果�[32minfo�[39m:�你好,你好吗?�[39m
我不知道colorize在哪里,所以我可以删除它,这是我的代码:
new winston.transports.File({
format: winston.format.combine(
winston.format.colorize({ // I added this but it's still not helping
是否可以在没有侦听端口的情况下运行应用程序?
我只想运行计划任务是的,您可以,Nestjs提供独立应用程序,使用它,您可以在没有任何网络侦听器的情况下装载Nest应用程序。要实现它,您必须通过以下方式编辑main.js函数:
async function bootstrap() {
const app = await NestFactory.createApplicationContext(AppModule);
// application logic...
}
bootstr
我用NestJS制作了这个项目,我用它来构建端点。最近我创建了一个保存图像的端点,这些图像保存在一个与SRC文件夹相同级别的文件夹(称为upload)中
我需要打开这些图像,如下所示:http://localhost:3000/upload/2363729-c9642363729.jpg
但是,尽管我尽了最大努力,我还是无法得到它
这是我的main.ts代码(现在不工作):
这就是我的项目的样子:
我怎样才能得到url呢?您的代码中有一个输入错误,更新而不是上传。将其替换为以下内容:
app.
使用创建新应用程序时
nest new myApp
它创建一个main.hmr.ts文件。此文件与main.ts不同,因为引导函数包含以下代码:
if (module.hot) {
module.hot.accept();
module.hot.dispose(() => app.close());
}
模块的声明为:
我想知道这段代码的目的是什么…好的-它被网页热模块替换使用
declare const module: any;
我们目前正在针对数据库实现NestJS。我们决定使用TypeORM为我们提供一个强大的ORM,用于大多数基本到中间查询。然而,在我们的实体中建立一种特殊关系时,我遇到了一些问题
我们的表结构来自无法修改的现有系统。详情如下:
员工表
+-----------+-----------+---------------+
| HRCO (PK) | HRRef(PK) | udDisplayName |
+-----------+-----------+---------------+
|
我正在使用typeorm和nestjs
我有一个实体,看起来像这样,但有额外的属性:
export class User extends BaseEntity {
@ApiModelProperty({ uniqueItems: true, example: 'myuser', description: 'User login' })
@Column({ unique: true })
login: string;
@ApiModelProperty({ example:
我是nestjs/typeorm的新手,请原谅我
我建立了一种多对多的关系;“我的表”是使用正确的列自动创建的
我有一个可以有很多用户的位置,一个用户可以有很多位置
我的路线如下所示:
http://localhost:3000/locations/:location-id/用户
我的location.entity.ts如下所示:
@ManyToMany(type=>User,User=>User.locations,{eager:true})
@JoinTable()
用户:用户[];
我
我们能否使DTOs成为验证的真实来源,并在控制器和服务中使用它?
如果我已经有DTO,为什么我需要接口?如果你不想使用接口,就不需要接口。对于作为基本模型的DTO,我也不使用接口。也就是说,它们非常强大,所以我绝对不会阻止您使用它们,举个例子:
interface ILogger {
log(message: string) : Promise<void>;
}
class ConsoleLogger implements ILogger {
log(message
我在为一段JSON服务的NestJS中的端点上有一个奇怪的行为。
带有JSON对象的JS正在导出
module.exports=Object.freeze({
翻译:{
TestMessage:'BienvenueáReact et React-i18next'
}
});
客户端上的结果是:
{
"translation": {
"TestMessage": "Bienvenue à React et react-i1
我有一个控制器
//imports etc
...
@Get('me')
async get(@Req res): Promise<UserVm> {
// extract auth user from request object
// return auth user
}
@Get(':id') // uuid
async get(@Param('id') id: string): Promise<UserSummaryVm> {
// r
我使用的是我购买的akveo后端包,虽然在开发模式下,从生产开始,一切似乎都运行良好,但我对nestjs本身并不熟悉。
有人知道这是怎么回事吗
node_modules/@nestjs/core/adapters/http-adapter.d.ts:5:31 - error TS2420: Class 'AbstractHttpAdapter<TServer, TRequest, TResponse>' incorrectly implements interface 'HttpSe
我沿着这条路走:
模块
@Module({
providers: [
{
provide: ConfigService,
useValue: new ConfigService(`development.env`),
},
],
exports: [ConfigService],
})
export class ConfigModule {}
服务:
export interface EnvConfig {
[key: string]:
标签: Nestjs
class-validatorclass-transformer
我想使用从@nestjs/common
...
applyDecorators(
@Field(),
@MinLength(2)
)
...
但我有打字稿的线头错误。如何创建一个包含多个decorator的自定义decorator
您可以使用applyDecorators方法定义自定义装饰器方法
applyDecorators方法接受PropertyDecorator作为参数。因此,请确保将它们转换为PropertyCorator
export const NameField =
在提出问题之前,我很抱歉语法可能很奇怪,我的语言不是英语
最近,我正在通过Nestjs&Prisma进行一个新项目。
在维护用户实体和Post实体之间的关系时,如何将数据放入
下面的代码是定义的实体方案和我尝试过的代码
model Post {
content String
id Int @default(autoincrement()) @id
title String
userId Int?
user User? @relation(fiel
我是Nest的新手,我正在尝试集成MQTT协议。一切正常,只是服务器没有从服务器上实例化的客户端收到任何消息
main.ts
async function bootstrap() {
// Create regular nest application.
const app = await NestFactory.create(AppModule);
// Then combine it with your microservice
const mqtt = app.conne
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页