我有自定义模块AuthModule和AuthService,AuthController和路由等等,这些模块工作正常,并且希望在多个项目之间作为一个包共享此模块。问题是如何从这个包中扩展导入的AuthService,以及如何向其中注入额外的服务
更多详细信息
我想将自定义的AuthService放入包中,然后将其注入类UserService,默认情况下,该类从数据库获取一些User数据并将其返回客户端。我需要向另一个AuthService中注入,例如,从应用程序中获取的ProfileServic
我正在使用NestJs。我在控制器中使用拦截器进行PUT请求
我想在PUT请求之前更改请求主体,并更改通过PUT请求返回的响应主体。如何做到这一点
投入使用
@UseInterceptors(UpdateFlowInterceptor)
@Put('flows')
public updateFlow(@Body() flow: Flow): Observable<Flow> {
return this.apiFactory.getApiService().upda
我正在尝试使用GoogleOAuth生成的jwt来保护NestJSAPI项目。我让客户机代码正常工作,并用jwt.io验证了生成的jwt是正确的,并用我的客户机密码验证了ok
我遵循了nestjs的指南来实现passport和jwt auth guard,但是当我将一个承载令牌传递给一个具有该guard的方法时,我得到的只是JsonWebTokenError:invalid algorithm
相关代码包括:
jwt.strategy.ts
export class JwtStrategy ex
无法使用正确的连接信息连接数据库,请遵循文档从中连接数据库
数据库已连接到SQLYG上
在app.module.ts中遵循相同的数据库信息
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: null,
database: 't
我使用几个存储库创建了服务:
@Injectable()
export class DataService {
constructor(
@InjectRepository(ClassicPrices, 'connect')
private classicPrices: Repository<ClassicPrices>,
@InjectRepository(ModernPrices, 'connect')
p
错误(续):请确保索引[0]处的参数PrismaService在Assoc_Page_TagModule上下文中可用
代码中没有错误
当我尝试>npm运行时,开始:dev
我最初得到:发现0个错误。监视文件更改。
然后是一个错误:
[ExceptionHandler]嵌套无法解析关联页面标记服务(?)的依赖项。请确保索引[0]处的参数PrismaService在Assoc_Page_TagModule上下文中可用
索引[0]处的参数是什么?为什么会有争论
助理页面标签服务ts
import {
目前,我们必须为nest js中的所有控制器指定路由
我们是否可以将控制器名称作为所有的路由?e、 g.当控制器名称为“ProjectController”时,路由应自动作为“Project”,而不是在所有装饰器中指定它们
与.Net MVC控制器类似
@Controller('Project')
export class ProjectController extends MasterController {
@Post('GetProjects')
async Get
我添加了一个OnMoudleInit服务来初始化我的NestJS应用程序中的一些示例数据
TypeORM提供了几种将查询包装成单个事务的方法
我尝试使用EntityManager.transaction包装操作
等待此.manager.transaction(异步(管理器)=>{
//注意:必须使用给定的manager实例执行所有数据库操作
//这是EntityManager处理此事务的一个特殊实例
//别忘了在这里等待
const del=wait manager.delete(PostEnt
我有两个不同的实体:公司和用户都必须通过电子邮件和密码进行身份验证。
我设置了两个不同的类扩展passport策略,如下所示:
@Injectable()
export class LocalStrategyCompany extends PassportStrategy(Strategy) {
constructor(private companyAuthenticationService: CompanyAuthenticationService) {
super({
我想在nestjs中禁用X-Powered-By,如下所示,但它不起作用
main.ts:
async function bootstrap() {
const logger = new Logger('bootstrap')
const app = await NestFactory.create<NestExpressApplication>(AppModule);
app.disable('X-Powered-By') // this line
我在oracle数据库中有存储过程,我想在NestJs中调用它。
如何在NestJs中调用存储过程
这是我的存储过程
PROCEDURE pipeline_critical (
i_main_company IN NUMBER,
o_value OUT NUMBER
) AS
BEGIN
SELECT COUNT(A.PIPELINE_ID) AS IGNORED_PIPELINE
INTO o_value
FROM T_PI
我正在尝试将WebAssembly文件加载到浏览器中。我正在尝试加载库,当我尝试执行所描述的操作时,我得到一个错误
const worker = new Worker('http://localhost:3000/webworker-wasm')
VM114:1 Refused to create a worker from 'http://localhost:3000/webworker-wasm' because it violates the following Content Secur
我正在遵循nestjs文档,我的端点正在获取文件,但文件没有存储
我使用的配置与NesJS相同
@Post('upload')
@UseInterceptors(FileInterceptor('file'))
uploadFile(@UploadedFile() file) {
console.log(file);
}
在我的app.module文件中,我添加了以下导入:
MulterModule.register({
dest: './uploads'
})
但该
我正在使用nest.js和TypeORM。我需要进行一个查询,返回表中的所有行,其中facility_id等于某个值,date小于或等于(),因为您没有提供有关预订和设施实体的正确信息,我猜测两种可能的情况(通常这两种情况都是真的)。您可以从中选择代码解决方案
1.Reservation实体有一个facility\u id列
const facilityId=“yourficilityid”;
把这个还给我({
其中:{
术语:LessthanRequal(新日期(2021,0,1)),
设施i
我创建了一个TypeORM实体@Column({default:'我绑定了很多类型和更多值'})在每次服务器重新加载或使用watcher修改代码时返回原始值(默认情况下'我尝试了…)
@Column({default: 'I tied with a lot of type and more value'})
is_active: string;
我想我需要更多的澄清来真正理解正在发生的事情,但听起来您的TypeORM配置中可能有synchronize:true。这将使TypeORM在服务器启
我试图搜索我的问题,但什么也找不到,也许我处理问题的方法不对
我正在一个服务中构建一个update one函数,它位于REST API(使用NestJS)的补丁端点中,因为这是一个补丁,所以我要寻找的是作为参数输入的任何字段,应该在实体中得到更新,到目前为止效果很好。
现在问题出现了,我将其添加到一个相关模型中
我拥有的(简化)模型有:
我与之合作的主要实体:
组织{
身份证号码:,
名称:字符串;
@一家公司(()=>Offer,(Offer:Offer)=>Offer.organizatio
我可以在静态方法中使用Scope.REQUEST服务吗
@Injectable({ scope: Scope.REQUEST })
export class CatsService {
constructor(@Inject(REQUEST) private request: Request) {}
}
你需要在这里添加更多的上下文。静态方法是什么?如何调用它?您计划如何从静态方法调用此服务及其方法?
我有一个带有POST操作的控制器来保存代码。以下是我控制器中的内容:
导入{
海关警卫,
理由代码服务,
推理代码,
}来自“cnv ms core”;
导出类控制器{
构造函数(私有只读reasonCodeService:reasonCodeService){}
}
@Post(“原因代码”)
@ApiOperation({摘要:'保存原因代码'})
@蜂体({
//类型:ReasonCode,
描述:'原因代码',
要求:正确,
艾萨瑞:错,
})
@蜂群反应({
现状:201,
描述:“原
我想用TypeOrm将Mysql位数据列映射到布尔属性。我正在使用NestJs框架,但不知道如何实现它。据我所知,框架不支持Mysql位数据类型,但我不知道如何解决它。根据定义,在实体中声明一个布尔类型的字段就足够了,不要用@Column来修饰它:
然而,通过这个,我在实体的每个实例中都得到了真正的值。还尝试导入“反射元数据”;在实体和app.module.ts中,结果相同
另一种选择是使用tinyint类型:
这样,我就得到了这种数据,其中数据字段保存了当前存储的布尔值:
"enable":{
标签: Nestjs
server-side-rendering
如何向提供全局属性以避免在每个渲染端点中显式定义它
e、 g.请求所调用的url。无意中发现了这一点,并通过注入中间件和指定使用的路由完美地工作
请注意,对于Express4.x,局部变量是一个对象,而不是一个函数
我喜欢按照功能线组织我的项目,使用不同的模块进行交叉关注,例如:配置、身份验证等。但是,当将拦截器导入功能模块以便与控制器嵌套一起使用时,似乎不会重用现有实例
控制器.module.ts
@模块({
进口:[
//ConfigService从此模块导出。
配置模块
],
供应商:[
//出于调试目的,我使用了一个工厂,以便放置断点并查看
//当创建拦截器时。
{
提供:MyInterceptor,
useFactory:(config:ConfigService)=>newmyintercept
我有一个5000条记录的excel,当我试图通过邮递员上传它时,它会抛出以下消息:
"Could not get any response
There was an error connecting to http://localhost:3000/data/import."
但当我对500条记录进行同样的处理时,它就起作用了
参考代码:
@Post('import')
@UseInterceptors(FileInterceptor('file'))
async upload
我试图在nestJS中测试服务的异步函数
此函数是异步的。。。基本上从数据库中获取一个值(JSON)(使用repository-TypeORM),当成功获取数据时,“转换”到另一个类(DTO)。。。
实施:
async getAppConfig(): Promise<ConfigAppDto> {
return this.configRepository.findOne({
key: Equal("APPLICATION"),
}).then(co
在用户模块的代码优先GraphQL模式中,我试图定义一个模型,如下所示:
import { Field, Int, ObjectType } from '@nestjs/graphql';
import { User } from './user.model';
@ObjectType()
export class UserList {
@Field(() => Int)
totalCount!: number;
@Field(() => [User])
item
我知道NestJS会将所有与200-299不同的状态代码作为错误处理,我已经创建了自己的HttpExceptionFilter实现ExceptionFilter来处理错误
这就是我目前的情况。我的一个提供者正在向我发送状态代码为500的响应,以防值出错(不是真正的服务器错误),但在响应中会出现消息和描述
是否有一种方法可以捕获内联异常,而不将响应传输到我的异常过滤器
const options = {
requestBody,
headers: {
Aut
我正在尝试使用另一个模块中定义的typeorm自定义存储库
以下是:
如果要在导入TypeOrmModule.forFeature的模块之外使用存储库,则需要重新导出由其生成的提供程序。您可以通过导出整个模块来完成此操作,如下所示:
现在,如果我们在UserHttpModule中导入UsersModule,我们可以在后一个模块的提供程序中使用@InjectRepository(User)
就我而言,我会:
@Module({
imports: [RoleModule],
provider
我使用以下npm命令安装了@nestjs/mongoose:
npm i --save @nestjs/mongoose mongoose
但是,当我尝试启动应用程序时,会出现以下错误:
node_modules/@nestjs/mongoose/dist/decorators/prop.decorator.d.ts:2:44 - error TS2694: Namespace '"mongoose"' has no exported member 'SchemaTypeO
免责声明:我的愿望是有明显而好的选择,但从我对Nestjs的了解来看,如果我以某种方式支持以下“模式”,我不会感到惊讶
考虑到这两个DTO:
导出类AddExistingMemberDto{
@IsInt()
memberId:编号;
}
导出类AddNonExistingMemberDto{
@IsString()
用户名:字符串;
@IsEmail()
电子邮件:字符串;
}
Nestjs能否检查请求主体满足的DTP,并在不同的控制器方法之间切换
我试过:
@控制器(“组”)
导出类G
我正在编写很多util函数
我需要把它们放在服务中还是可以把它们放在外面
谢谢实用程序用于不依赖于状态的静态功能。一旦你调用了一个函数,它就完成了任务,不再做任何事情
另一方面,服务可以处理状态,并且通常更复杂。您可以使用某种下载服务,该服务使用URL初始化,然后获取它,最后进行某种后处理
根据经验,实用程序没有依赖项,也不调用其他(非静态)方法。服务更复杂,可能会调用其他服务。服务可能具有内部状态
到目前为止,如果您的UTIL没有调用其他服务,那么最好将它们放在外部
最好把他们留在外面。希望这
正如我所读到的,如果我想将DTO字段自动转换为相应的类型(因为它们都自动作为字符串出现),我可以将选项“transform:true”传递给ValidationPipe参数,但最近我看到了以下内容:
new ValidationPipe({
transformOptions: {
enableImplicitConversion: true,
}
}
我不明白这两个选项映射到库选项之间的区别。enableImplicitConversion将在转换期间进行类型转
我正在基于一个应用程序构建一组应用程序
我有几个应用程序依赖于几个共享的libs
那些应用程序彼此相似,但可能在某些功能上有所不同,因此monorepo完全有意义
一些libs提供了@Controller(),用于查看常见功能
假设
模板文件应位于模块中。
由于控制器和渲染模板之间存在高度耦合,
我认为将视图模板文件(.hbs、.ejs,无论什么)存储在提供@Controller的libs模块中是有意义的
当我构建应用程序时,只应在dist/中提供相关模板
我有一些业务/法律/安全限制,迫使我
使用订阅者(基于TypeORM的db)我找不到如何访问请求(让auth user通过restapi创建预订)
我尝试使用中描述的可注射药物,但在这里似乎不起作用
谢谢你的帮助
预订订户
从'@nestjs/common'导入{Inject,Injectable,Scope};
从“rxjs”导入{throwError};
从'src/accounts'导入{Account};
从'src/rooms'导入{Room};
从'src/transactions'导入{TransactionEntit
我尝试将NestJs模块的控制器模块与域模块解耦(根据干净的体系结构原则),以便依赖关系只流向域。
我不明白如何使它工作,repo接口实现的注入不会发生(嵌套启动时出错)
以下是模块结构:
AppModule -> CommunityControllerModule -> DomainModule
(provides repoImpl (has service requi
我是nestjs的新手。我现在正在玩一个非常简单的mongodb/mongoose db,里面有书籍、作者和流派。我开始对我真正需要的模型有了模糊的印象,比如说,书籍
目前我有两种型号:
book.ts
需要注入服务构造函数@InjectModel('Book')私有只读bookModel:Model,并调用Book.save()
CreateBookDto.ts
据我所知-需要在创建过程中验证对象
(当然,还有另一个文件中的mongoose模式)
现在我在尝试序列化book响应时遇到了
我的匿名护照策略定义如下:
// In anonymous.strategy.ts
import {Strategy} from 'passport-anonymous'
import {PassportStrategy} from '@nestjs/passport'
import {Injectable} from '@nestjs/common'
@Injectable()
export class AnonymousStrategy extends PassportStrategy(S
在NestJS中,可以定义可注入对象的注入范围。(可能是:单例、请求、瞬态)
在文档中,建议尽可能始终使用单例作用域,因为f.e请求作用域将在每个请求-响应周期上嵌套实例化提供程序,这可能会影响应用程序的性能
使用请求范围的提供程序将对应用程序性能产生影响。尽管Nest尝试缓存尽可能多的元数据,但它仍然必须在每个请求上创建类的实例。因此,它会减慢您的平均响应时间和总体基准测试结果。除非提供程序必须是请求作用域,否则强烈建议您使用默认的单例作用域
从什么时候开始,对象实例化消耗了这么多资源?
整个
我想创建一个Nest.js包,以便在多个Nest.js项目中重用控制器
我已经签出了,但这似乎不是我想要的,因为似乎只有在repo中才能导入库
拥有一个可以通过npm发布的库以便我可以在其他嵌套项目中安装和导入它的最佳方法是什么?最好的方法之一是创建一个动态模块
本主题将帮助您完成以下任务
对于通过npm发布,这篇文章将是您以清晰的方式完成的指南这就是我如何完成的
创建文件夹并初始化节点包
安装以下依赖项和开发人员依赖项
然后转到您的package.json并将main,类型,脚本更改/添加到以
我试图实现与nestjs、typeorm和postgres的一对一关系
我有一个个人资料实体
@OneToOne(() => Trainer, trainer => trainer.profile)
@JoinColumn({ name: 'trainer_trainer_id' })
trainer!: Trainer;
和一个培训师实体
@OneToOne(() => Profile, profile => profile.trainer)
pr
我将一个字符串传递给RESTAPI,并从auth服务类调用用户服务类中的以下方法
async abc(email: string): Promise<any> {
const userInDb:Users = await this.usersRepository.findOne({email});
}
它很好用。我希望上述代码正常工作。我发现了问题。我的控制器正在以JSON格式向我发送电子邮件
const userInDb:Users = await this.usersRep
出于某种原因,nest start--watch没有监视任何非类型脚本资产。尽管我完全按照医生说的做了:我似乎不明白。我尝试过标准模式和单回购模式,但都没有成功。我开始了一个新项目,只是为了展示我所看到的
嵌套--版本:7.5.1
运行命令时:npm run start:dev我希望每次更新html文件时都能看到“检测到增量文件更改”消息,并且应用程序会重新加载,但在初始应用程序加载后不会发生任何事情。在初次加载应用程序时,文件确实会被复制到dist文件夹,这样就可以了,但我希望在开发和更新这些
我有这个目录结构的应用程序
App
|--src
|--模块
|--使用者
|--角色
|--公司
|-- ...
|--app.module.ts
|--main.js(应用程序引导)
|--seed.js
|--…其他文件
我创建了一个包含以下内容的文件:
seed.ts
我想在应用程序的开头插入数据,用数据完成应用程序工作所需的数据库的一些表
谢谢你的帮助 好吧,让我们简化一下,您有两个种子设定选项,在迁移文件中使用queryRunner.manager.insert(),并使应用程序
我们在nestJs中使用类型化的订阅者和监听器,并希望在AfterLoad函数中使用repository
async beforeUpdate(event: UpdateEvent<any>) {
const entityClassName = event.entity.constructor.name;
const userRepository = await event.manager.getRepository(User);
我正在使用Nest.js+TypeORM开发并尝试在我的计算机中部署
我可以在开发模式下连接mysql,但在产品模式下失败了
下面是我的类型配置
@Module({
imports: [
AuthModule,
ClassificationModule,
ArticleModule,
UserModule,
CommentModule,
FragmentModule,
TypeOrmModule.forRoot({
type
标签: Nestjs
class-validatorclass-transformer
我有一个NestJS项目,其中我同时使用类验证器和类转换器,我需要在类验证器抛出错误之前执行类转换器
鉴于以下类别:
导出类CreateProfileDto{
@IsString()
@公开({name:'name'})
profileName!:字符串;
@IsBoolean()
@公开({name:'活动'})
profileActive!:布尔值;
}
我需要用属性名而不是属性profileName公开错误,对其他属性也是如此
有什么直截了当的办法来处理这个问题吗?无法要求前端将不同名称
nestjs应用程序的插件系统
我有一些基于“核心”模块的服务。
这个模块应该是一个完全密封的黑盒子。
添加新功能的唯一方法是在系统上注入新模块,最终,
更换核心模块的某些服务
问题是:
如何在运行时替换服务?(@可注射)
想法是用一个具有增强功能的新类替换旧类。我实际上正在做类似的事情,使用一个动态模块允许传入一个类,然后使用工厂和自定义提供程序来确定要使用的类的哪个变体,默认的还是用户提供的自定义的。是的,我已经尝试过了,但是,它不起作用,我的意思是,旧模块(核心隐藏模块)仍然使用旧类。如果
我有一个模块(auth模块),我在其中注册JwtModule:
JwtModule.register({
secret: process.env.SECRET_KEY,
signOptions: { expiresIn: '60m' },
}),
寄存器函数如下所示:静态寄存器(选项:JwtModuleOptions):DynamicModule
JwtModule在节点_模块(jwt.module.js)中定义
在app.module.ts中,我有
Confi
我需要访问模型类中的服务。该服务有其自身的一系列注入,因此如果我能在该类模型中获得该服务的实例,那将是非常棒的。
例如,Angular有一个反射注入器,可以实现这一点,我记得在某处看到了一个借助nestjs反射器实例化服务的示例,但我找不到这个示例,那是很久以前的事了。
我不知道我是否需要在问题中添加任何代码。我只是有一个模型类,我需要在那里使用一个服务。我需要注入它,而不是通过类构造函数,我相信就是这样
我该怎么做
编辑:
看起来nest有一个反射器,但我也必须注入它…我的天哪…它没有一个类似
我是NestJs世界的新手。据我所知,我导入了JWT战略中所需的一切。我不知道哪里出了问题。有人能帮我吗
就我所提到的documentation而言,每当我们想要在模块中使用任何实体时,我们都应该在@module()decorator的imports字段中导入该实体。我做到了
jwt.strategy.ts
import { Injectable, UnauthorizedException } from "@nestjs/common";
import { Passport
标签: Nestjs
fastifynestjs-fastify
我已经用Fastify创建了一个NestJs项目,并为其创建了一个中间件,但我不知道如何向客户端发送响应,就像我们在express中所做的那样,如果您有任何帮助,我们将不胜感激,谢谢!,以下是我的中间件代码:
导入{
可注射,
内斯特,
HttpException,
HttpStatus,
}来自“@nestjs/common”;
@可注射()
导出类loggermdleware实现了嵌套中间件{
使用(req:any、res:any、next:Function){
log('Request…'
在使用Nestjs运行测试e2e以测试dto时,我遇到了错误econnrefered127.0.0.1:80
这是我的密码:
const TEST_URL = 'test';
@Controller(TEST_URL)
class TestController {
@Post()
public test(@Body() param: TimeTableParam) {
// nothing
}
}
describe('TimeTableParam', () => {
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页