#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