app.module.ts
@模块({
进口:[
ConfigModule.forRoot({
isGlobal:对
}),
forRoot(process.env.MONGO_DB_URI,{useFindAndModify:false}),
用户模块,
角色模块,
身份验证模块,
双因素模块,
记住PasswordModule,
注册链接模块
],
控制器:[AppController],
提供者:[AppService],
})
导出类AppModule{}
authentication
文档中有关配置服务的问题:
请参见此处的类定义:
export class ConfigService { /* ... */ }
为什么没有@可注射的装饰器?有什么原因或只是一个错误吗?@Injectabledecorator对提供ConfigService的模块可能是@Global?没有@Injectable decorator,因为此类用作自定义提供程序。请参见以下用法:
{
provide: ConfigService,
useValue: new ConfigService
我有一个DTO
export class UpdateUserRoleDTO {
@ApiProperty()
@IsNotEmpty()
readonly userId:number;
@ApiProperty()
@IsNotEmpty()
@IsNumber()
readonly roleId: number;
}
我的控制器看起来像这样
@UsePipes(new ValidationPipe())
@Post('/update')
async
我是NestJs的新手,我有一个问题想问你,我无法解决
UsersService有两个依赖项
-类型化用户还原注射
-WalletsService注入
Typeorm注入是由decorator完成的,如下所示
//用户服务
@可注射()
导出类UsersService实现IUserService{
建造师(
@注入存储库(用户)
私有用户存储库:存储库,
私人只读walletsService:walletsService,
) { }
每当我改变第一次注射,它就无法解决
可能我遗漏了什么。下面
我尝试了下面的脚本,但没有成功
{
"scripts": {
"start": "TZ='UTC' nest start"
}
}
[系统信息]
操作系统版本:Linux 5.4
NodeJS版本:v12.18.3
NPM版本:6.14.6
[嵌套CLI]
Nest CLI版本:7.4.1
[嵌套平台信息]
platform express版本:7.0.0
护照版本:7.0.0
打字版本:7.1.0
通用版本:7.0.
我试图在名为User的表和User\u Mates的表之间创建一对多关系,但出现以下错误:
错误:未找到用户#伙伴的实体元数据。检查您是否指定了正确的实体对象,以及它是否在连接选项中连接。
为了调试错误,我删除了模块和所有内容,直到只剩下最初的模块
现在项目中没有与User\u Mate相关的文件或任何内容。
但问题仍然存在。任何人都知道,现在是什么导致了这个问题。当我加载Typeorm(我使用的是NestJS)时,我的主模块如下所示
import { Module } from '@nes
搜索这个已经有一段时间了,不确定这是否是SQL世界中的非正统内容,但我正在尝试使用NOTNULL“deletedAt”列进行左连接,但我似乎找不到一种方法来执行包含删除的左连接
这只是一个虚拟示例,说明了我正在尝试做的事情,在这种情况下,我希望检索人员信息以及作业信息,但作业已被软删除
this.createQueryBuilder('person')
.leftJoinAndSelect('person.job', 'job')
此操作生成的SQL查询在左连接上隐式添加了“IS NOT
标签: Nestjs
typeormbundling-and-minification
我最近不得不考虑一种新软件的部署方法,该软件采用以下方式编写:
NestJS 6/Express
字体0.2
使用类型脚本
该软件将部署在160多台服务器上,分布在整个欧洲,其中一些服务器的互联网连接非常糟糕
我做了一些研究,并对捆绑进行了大量的。主要的论点是,本机扩展将无法使用像webpack或rollup这样的捆绑包(Spoiler:这是真的,但有一个解决方案)。在我看来,这在很大程度上是因为人们并不关心这一点:《gyp前节点》(node pre gyp)的作者使用了。所以通常,我被告知
我试图创建一个Nest js应用程序,但是当我在他们的网站上按照步骤操作时,我得到的第一个错误是“找不到ts节点”。所以,我安装了它。我还需要安装几个typscript模块(我相信是typscript和tsconfig路径)当我清除这些错误并运行npm run start时,我得到了一个“找不到节点模块@nestjs/core”。一旦使用typescript,您就必须安装它,以便能够使用tsc命令将代码转换为javascript
当您想在运行中使用transpillation时,还需要安装ts
我在NestJs中创建了一个示例应用程序,它没有一个控制器。我已经创建了全局异常过滤器,并通过应用程序模块将其注入,如:
providers: [
{
provide: APP_FILTER,
useClass: CustomExceptionFilter,
},
]
当调用任何服务方法并发生异常时,调用不会出现在我的自定义异常筛选器中。请注意,我的应用程序中没有一个控制器。只有模块和服务
此外,我还尝试在
我使用NestJs+Typegoose。如何在NestJs+Typegoose中将_id替换为id?我没有找到一个明确的例子。我试过一些东西,但没有结果
@modelOptions({
schemaOptions: {
collection: 'users',
},
})
export class UserEntity {
@prop()
id?: string;
@prop({ required: true })
public email: string;
标签: Nestjs
sequelize-typescript
在模型中添加关系时,我发现错误类型“typeof Questions”不可分配给类型“typeof Model”。
问题.model.ts
import { Column, Table, PrimaryKey, Default, DataType, Model } from "sequelize-typescript";
@Table({timestamps: true})
export class Questions extends Model<Questions&
我正在尝试使用onModuleInit钩子初始化ConfigurationService。参考前面的代码,我希望在创建模块时调用钩子。然而,情况并非如此。基本上,我有:
配置服务:
import { Injectable, OnModuleInit } from '@nestjs/common';
import { ApplicationConfiguration } from './interfaces/application-configuration.interface';
impor
我最近遇到了一个问题
当我与postgress DB交互并要求返回对象n get a blank{}时,我不确定它是否返回了数组中包含对象的数组
以下是我的代码供参考:
public async updateUserById(patchUser: CreateUserDto, userId: number, profile_image: any) {
const user = await this._userRepository.createQueryBuilder('use
我可以使用以下示例获取服务实例:
export class GetEntityDomainService {
constructor(private readonly moduleRef: ModuleRef) { }
getEntity(): void {
const myObject = this.moduleRef.get(MyClassName);
}
}
但是,如何在类对象之外调用服务实例呢
如果我没有moduleRef的句柄:
以下是来自angular的示例:
我想知道是否可以从服务返回状态?
事实上,在我的服务中,我有允许注册的代码,但我想返回一个错误,例如,如果邮件中已经存在一个帐户。
我尝试了使用抛出新的HttpException(),但它没有改变任何东西
这是我目前的代码:
控制器:
@Post('/signup')
async signup(@Body() body): Promise<void> {
return await this.accountService.signup(body);
}
@Post(“/si
我有一个项目,我建立了几个模块。在发现nestjs有一个lib-cli命令后,我将它们全部移植到使用这种样式。
现在,我的应用程序在使用npm run start:prod时找不到这些模块
Error: Cannot find module '@app/foo'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
at Function.Module._load (internal
嵌入@nestjs时/terminus@6.1.0在我们的nestjs项目中,一种类型的@nestjs/microservices无法识别:
$>tsc
node_modules/@nestjs/microservices/external/redis.interface.d.ts:2:23 - error TS2688: Cannot find type definition file for 'mocha'.
2 /// <reference types="mocha" />
是否有方法访问请求的原始正文?不是已经解析成json了吗
@Injectable()
export class WooGuard implements CanActivate {
secret: string;
constructor(
private readonly reflector: Reflector,
private configService: ConfigService,
) {
this.secret = this.configSe
我需要将一些资源从节点模块复制到我的公共资源文件夹中,比如图像和字体。我一直在尝试使用nestcli.jsonassets配置,但它似乎不起作用
这是我的配置
"compilerOptions": {
"assets": [
"node_modules/blah/assets/**/*"
],
nestjs cli是否阻止您这样做
我最近正在使用NestJs和typeORM,但在运行nest应用程序时出现了一个错误。它会生成此错误
/home/backend/src/migrations/1611061187746-loadAllEntities.ts:1
import { MigrationInterface, QueryRunner } from 'typeorm';
^
SyntaxError: Unexpected token {
at Module._compile (internal/m
我想使用警卫,它将检查数据库,如果当前用户在每个请求上都是活动的。根据我所做的研究,我可以使用request.user,前提是警卫不是全局的。
我有以下选择:
在每个控制器/分解器上注册防护装置(缺点:代码重复)
从request.headers中提取并解码jwt(然后jwt被解码两次:一次来自我,一次在引擎盖下(我正在使用AuthGuard('jwt'))
进行所需过滤的最佳(最干净)解决方案是什么?还有更好的选择吗
@Injectable()
export class IsUserActiv
我将使用基于nestjs的certbot。所以我想设置nestjs来读取/.well-known/acme challenge/下的txt文件。但是,我不知道如何设置它来读取该路径下的txt文件。如果使用ServerStaticModule,它将继续加载index.html。你能告诉我怎么设置吗
--我的nestjs app.module.ts--
--结果--
结果是导入/.well-known/acme challeng/index.html。我想把file.txt带来。我该怎么办?我将
标签: Nestjs
angular-universalangular9
我正在本地服务器上使用Angular 9和Ivy运行NestJS Angular Universal应用程序。当我跑步时,我可以让一切正常工作:
npm运行服务:ssr
但是,除非手动键入路线,否则不会加载任何内容。我认为它会自动加载“index.html”,而不必键入它
本地主机:8080------无
localhost:8080/index.html----works
有没有办法修改代码来重写根路径?我认为这是没有必要的:
main.ts
从'@nestjs/core'导入{NestFac
然而,如果我添加一个控制器并使用npm start运行它,它就可以正常工作
这就是nestjs控制台引导应用程序所做的
TypeError: Cannot read property 'findOne' of undefined
关于如何解决这个问题有什么建议吗
TypeError: Cannot read property 'findOne' of undefined
import { BootstrapConsole } from 'nestjs-console';
import { C
我试图在NestJS中创建一个控制器操作,该操作可通过GET HTTP请求访问,该请求接收两个参数,但由于某些原因它们未定义
如何修复它
@Get('/login')
登录(@Param()参数:LoginUserDto){
console.log(参数)
返回“OK”
}
从'@nestjs/swagger'导入{ApiModelProperty};
导出类LoginUserDto{
@ApiModelProperty()
只读用户名:字符串;
@ApiModelProperty()
只读密
我将NestJS与TypeORM一起使用,并试图用消息保存用户对话。我将对话实体上的messages字段设置为cascade:true。但当我尝试此代码时:
const user3: User = { login: 'admin', createdBy: 'system', lastModifiedBy: 'system' };
const user4: User = { login: 'user', createdBy: 'system', lastModifiedBy: 'system' }
我试图将passport jwt策略添加到以/api开头的所有路由中
我在文件中找不到这方面的任何例子。我不想在每个端点中添加@UseGuards装饰器
谢谢 不可能立即将保护仅绑定到特定路由,但是可以向保护添加一些逻辑,以检查您是否在特定路由中,并运行逻辑或短路。大概是
@Injectable()
export class APIGuard implements CanActivate {
canActivate(context: ExecutionContext): boolean |
我在nest中有一个全局日志记录模块,它记录到一个云日志记录服务。我试图创建一个类方法装饰器,添加日志功能。但我正在努力如何在装饰器中注入全局嵌套模块的服务,因为我在docs dependent中找到的所有依赖注入机制都是基于类或类属性的注入
export function logDecorator() {
// I would like to inject a LoggerService that is a provider of a global logger module
let
我创建了身份验证(jwt),该过程已正确完成
我可以使用下面的代码访问用户信息,但是我不能使用decorator获取用户信息
控制器:
@Post('/me/info')
@UseGuards(AuthGuard())
myInfo(
@GetUser() user,
@Req() req,
) {
console.log(user); // undefined
console.log(req.user); // get user data obje
所以,我很困惑。我正在慢慢地掌握NestJS,但是passport的工作方式让我感到困惑
我遵循规则,一切正常
我创建了一个JWT战略:
@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
constructor(private prisma: PrismaService) {
super({
jwtFromRequest: ExtractJwt.f
我有多种身份验证策略,例如:
@Injectable()
导出类EmployeeStrategy扩展了PassportStrategy(策略“employee”){
建造师(
私有authService:authService,
@注入(appConfig.KEY)
configService:ConfigType,
) {
超级({
jwtFromRequest:ExtractJwt.FromAuthHeaderAsberToken(),
secretrokey:configService.E
我有一个表,我想在嵌套启动和数据库连接后加载一次
我似乎找不到用于db的TypeORM的事件-已连接,当我尝试时
getConnection我收到一个警告,现在我用一个糟糕的超时命令解决了这个问题
const f = () => {
const con = getConnection();
if (con.isConnected) {
console.log('connected');
// this is where the table l
如何从控制器动态调用服务的方法(从哈希映射中查找):
注册服务
import { Injectable } from '@nestjs/common';
import { CacheService } from '../cache/cache.service';
import { LoggerService } from '../../config/logger/logger.service';
@Injectable()
export class RegistrationService {
例如,我有照片、公司、汽车等实体。我知道它们有同名的列,我可以通过QueryBuilder访问它们。我不知道我将处理哪个存储库,但它像字符串参数一样传递给我的函数。像这样:
function haveAccess(user, entity, entityId) {
// model is string like 'photo', 'company', 'car'
}
事实上,我想检查用户是否可以通过单独的函数访问具有给定ID的实体,而不是仅绑定到一个实体
是否可以通过某种方式通过字符串初始化
标签: Nestjs
nestjs-servicesnestjs-providers
我在检查nestjs模块的一个源代码()时发现了一些奇怪的东西。一致:
当我们使用useFactory时,我们告诉我们在应用程序中使用ProviderService(无论注入令牌是什么)进行注入时,应该调用Nest函数。这似乎是因为app不是一个可立即注入的值(这可以通过将其设置为自定义提供程序来修复,但我猜nestjs firebase admin团队认为这是一个更简单的解决方案)。因此,firebase管理团队决定自己实例化提供者,而不是因为无法自动注入app而产生注入错误。这也是一种非常有
我正在尝试添加auth controller,为此我创建了auth controller、auth module,并将其导入到app module.ts文件中。。此时我得到了这个错误,我如何解决它
身份验证控制器
import {Body, Controller, Injectable, Post, UnauthorizedException} from '@nestjs/common';
import { Model } from 'mongoose';
import { InjectMode
运行nestjs应用程序和控制台显示:
WARNING!!
The "modules" key in the @Module() decorator is deprecated and will be removed within next major release. Use the "imports" key instead.
我的模块声明如下:
@Module({
imports: [UserModule],
providers: [AuthService, JwtSt
我尝试在使用Nestjs的TypeGraphQL中使用解析器类继承,但不知道如何将PostService注入BaseResolver
从'type graphql'导入{ClassType};
从'@nestjs/graphql'导入{Query,Resolver,Args};
从'@nestjs/common'导入{UseGuards};
从“/post.service”导入{PostService};
从'src/account/auth/auth.guard'导入{GqlAuthGuard
让我向您介绍AlgoModule:
现在,当我创建一个新服务并将其放入模块中时,让我们假设TestService:
我在这里所做的是,用标记“API”注入IApi,这是我使用apiFactory在AlgoModule中设置的
启动时,我将得到以下错误:
Error: Nest can't resolve dependencies of the ApiService(?). Please make sure that the argument dependency at index [0] is
例如,我需要更改错误响应404错误。
情况就是这样:
@Entity('role')
export class RoleEntity extends BaseEntity {
@PrimaryGeneratedColumn()
id: number;
@Column({ type: 'varchar', length: 100, nullable: false })
name: string;
}
@Injectable()
export class RoleService
我用TypeORM开始了一个项目,我遇到了一个问题。我已经在TypeForm配置中将synchronize选项设置为true,但是当我运行应用程序时,我收到以下错误:QueryFailedError:重复键值违反了唯一约束“pg\u type\u typname\u nsp\u index”
我读过一些关于它的文章,但我发现的唯一一件事是有人说它与并行运行测试有关,而不是我遇到的同一个问题
可能与async/await有关,以下是数据库连接部分:
export const databasePro
我正在尝试为运行它的应用程序设置相对路径,方法是使用tsc watch。但当我试图从feature文件夹访问共享文件夹中的enum时,我得到“错误:找不到模块”。使用ts节点运行应用程序可以正常工作。如何将tsconfig路径与tsc watch一起使用
这是我的项目报告:我是《tsc watch》的创作者,我刚刚签出了你的项目,看起来很有效。。。你找到解决办法了吗;DR在运行tsc watch期间,您有IS\t\u节点env var
如何将tsconfig路径与tsc watch一起使用
ts
我正在使用nestjs创建一个API,对它来说很新。我创建了4个模块,所有4个模块都运行良好。
我创建了另一个模块名步骤,但我在其中访问的所有路由返回404未找到。您的控制器文件中的@Controller decorator中有一个输入错误,或者您没有在新创建的moduleName.module.ts文件中注册控制器。这些是我最常见的错误。您的控制器文件中的@Controller decorator有一个输入错误,或者您没有在新创建的模块moduleName.module.ts文件中注册控制器。
我正在尝试实现Mongoose crud服务。我缺少有关注入模型或注入模块的内容
我得到以下错误:
嵌套无法解析ProductModel(?)的依赖项。请确保索引[0]处的参数DatabaseConnection在MongooseModule上下文中可用
app.module.ts
@模块({
导入:[产品模块,
MongooseModule.forRoot(config.mongoURI)],
})
导出类AppModule{}
product.module.ts
@模块({
导入:[Mon
在使用Repository.save(myEntity)时,如何确保只返回实体本身而不返回实体的关系
给定这个示例实体
@Entity()
出口级香精{
@许多(
类型=>咖啡,
咖啡=>咖啡口味,
)
咖啡:咖啡[];
}
@Entity()
出口级咖啡{
@JoinTable()
@许多(
类型=>味道,
风味=>风味咖啡,
)
风味:风味[];
}
还有这个示例服务
异步创建(createCoffeeDto:createCoffeeDto){
const flavors=等待承诺(
在main.ts中,我们可以使用app.getUrl()获取应用程序url
是否可以通过DI从服务中获取
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log(`Application is running on: ${await app.getUrl()}`);
}
bootstrap();
您可
NestJs我们无法直接将int转换为int64我们需要使用一些库来转换库的问题是它将int转换为BigInt,但在末尾附加了“n”。您可以建议或提供其他方法来进一步进行转换。您尝试过int64吗?否,你能解释我找不到图书馆的原因吗?谢谢你,伙计!!!
我在模块中提供了一项服务:
import { Module } from '@nestjs/common';
import { SomethingService } from './something.service';
@Module({
providers: [SomethingService]
})
export class SomethingModule {}
在另一个文件中,我想将此服务注入一个常量中。使用typedi我将执行以下操作:
import { Container
我的nestjs后端有以下代码。它在我的数据库和另一个系统中保存订单。但我在插入代码(它们的id)后得到代码(它们的id),并在我这边的一列中进行更新
我不确定我的代码,因为它在本地主机上花费了超过3秒的时间。这是:
async postOrder(data: CreateOrderDto): Promise<ErpOrderDto> {
const erpObject = new ErpOrderDto(data);
const replicObject = new
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页