pivot-table
, то найдёте много чего интересного. GET
запросе? GET
запросы не могут иметь тела, однако для пагинации limit
и offset
как-то надо прислать, вот и остаются query параметры. GET /entity?limit=10&offset=0
GET /entity/10/0
GET /entity/:id
, тк перекрываем его предыдущим роутом. NestJS
и вот к чему я смог прийти: Nest
), которые нужны по всему проекту я кладу в папку common
, примерами таких модулей могут служить некоторые DTO; сущности/модели; глобальные гарды и тд;/src
, но, например, у меня на работе в проекте все модули лежат в папке modules
, что, в принципе, тоже неплохо.auth
находятся папки: dto
, services
(если в модуле больше одного сервиса, то я создаю для них отдельную папку), если сервис один, то кладу его в корень папки модуля.Auth
), который будет делать вам токены.snake-case
. Примеры: email-confirmation.service.ts
, update-user.dto.ts
. То же самое относится и к директориям. Request
и Response
в GraphQL
, вы должны добавить эту строчку в конфигурацию GraphQLModule
.GraphQLModule.forRoot({
autoSchemaFile: join(process.cwd(), 'src/schema/gql'),
sortSchema: true,
driver: ApolloDriver,
context: ({ req, res }) => ({ req, res }), // <-----
})
CORS
в GraphQL
включается по-другому.@Global()
@Module({
imports: [
ConfigModule.forRoot({}),
JwtModule.registerAsync({})
Reflector,
],
providers: [ConfigService, JwtService, Reflector],
exports: [ConfigService, JwtService, Reflector],
})
export class CommonModule {}
req.authService
? Вместо req
должен быть this
так-то.@Public
и помечать ими те эндпоинты, которые не требуют аутентификации./auth/login
? Выберите что-то одно.authService
как readonly
. delete admin.password
, вместо этого воспользуйтесь class-transformer
и SerializerInterceptor
как тут.