type-graphql не может найти исключение модуля ‘class-validator’

#express #graphql #typeorm #typegraphql

#экспресс #graphql #typeorm #typegraphql

Вопрос:

Я пытаюсь создать мутацию GQL с помощью TypeORM и использовать SQL Server в качестве базы данных. Если я пытаюсь запустить мутацию, она вызывает исключение. Совместное использование приведенного ниже кода;

index.ts

 (async () => {
    const app = express();
    
        await createConnection();
    
        const apolloServer = new ApolloServer({
            schema: await buildSchema({
                resolvers: [UserRegistrationResolver, HealthResolver],
            }),
            tracing: true,
            context: ({ req, res }) => ({ req, res })
        });
    
        apolloServer.applyMiddleware({ app, cors: false });
    
        app.listen(4000, () => {
            console.log("App is started");
        })
     })();
 

Типы GQL:

 @InputType()
export class UserRegistrationType {

      /*......*/
      @Field()
      Reg_Security_Qus_Ans: string;
     /*......*/

}
 

Сущность:

 @ObjectType()
@Entity()
export class User_Registration extends BaseEntity {

          /*......*/

    @Field(() => Int)
    @OneToOne(()=> Security_Questions)
    @JoinColumn()
    Reg_Security_Qus_ID: Security_Questions;

         /*......*/
}
 

Мутация:

 @Resolver()
export class UserRegistrationResolver {
@Mutation(() => User_Registration)
     async createRegistrations(
                @Arg("RegistrationMutation") registrationMutation: UserRegistrationType
          ) {
                console.log("Boom1");
                let oneUser = await User_Registration.insert(registrationMutation);
                return oneUser; 
          }
    
          @Query(() => User_Registration)
          getUsers() {
                console.log("Boom");
                return User_Registration.find();
          } 
}
 

Когда я пытаюсь выполнить мутацию, появляется какая-то странная ошибка, как показано ниже, запрашивая у меня ‘class-validator’, ошибка выглядит примерно так,

 "message": "Cannot find module 'class-validator'nRequire stack:n- 
 

Кто-нибудь может помочь мне решить эту проблему. Я застрял с этим. Заранее спасибо.

Ответ №1:

Я был глуп, мне пришлось установить

 npm i class-validator
 

этот пакет. вот и все

Комментарии:

1. То же самое, собирался проклинать мой интернет, лол

2. Не глупо. npm 7 автоматически устанавливает отсутствующие одноранговые зависимости. npm 6 — нет. Мы обнаружили это при попытке сборки на сервере недавно. Но спасибо за проверку. Мы снова столкнулись с той же ошибкой, потому что версия npm сервера была отменена.

Ответ №2:

Либо установите class-validator , либо используйте validate: false опцию buildSchema .

Комментарии:

1. Мне пришлось установить class-validator , хотя validate false в моем buildSchema