PostgreSQL с ошибкой TypeORM «синтаксическая ошибка в или около «Sep «»

#javascript #node.js #postgresql #graphql #typeorm

#javascript #node.js #postgresql #graphql #типоорм #typeorm

Вопрос:

Сообщение об ошибке при попытке создать сообщение из GraphQL, по-видимому, это синтаксическая ошибка, и я не слишком знаком с SQL, поэтому я не знаю, в чем ошибка. Я также использую TypeORM, поэтому я не знаю, как здесь может возникнуть синтаксическая ошибка.

 "query": "INSERT INTO "post"("title", "text", "points", "creatorId", "createdAt", "updatedAt") VALUES ($1, $2, DEFAULT, DEFAULT, Sat Sep 05 2020 15:49:01 GMT 0200 (Central European Summer Time), Sat Sep 05 2020 15:49:01 GMT 0200 (Central European Summer Time)) RETURNING "id", "points", "createdAt", "updatedAt"",
  

и это сообщение об ошибке:
«сообщение»: «синтаксическая ошибка на или около «Sep»»,

Ошибка возникает при использовании INSERT INTO, и в ошибке говорится, что это происходит при слове «Sep», поэтому, по-видимому, что-то не так с датой или чем-то еще, хотя я не понимаю, какой в этом смысл.

Это преобразователь post

 @ObjectType()
@Entity()
export class Post extends BaseEntity {
  @Field()
  @PrimaryGeneratedColumn()
  id!: number;

  @Field()
  @Column()
  title!: string;

  @Field()
  @Column()
  text!: string;

  @Field()
  @Column({ type: "int", default: 0})
  points!: string;

  @Field()
  @Column()
  creatorId: number;

  @ManyToOne(() => User, (user) => user.posts)
  creator: User;

  @Field(() => String)
  @CreateDateColumn()
  createdAt = Date;

  @Field(() => String)
  @UpdateDateColumn()
  updatedAt = Date;
}
  

Это мутация

 @Mutation(() => Post)
  async createPost(@Arg("input") input: PostInput,
  @Ctx() {req}: MyContext): Promise<Post> {
    return Post.create({ 
      ...input,
      creatorId: req.session!.userId,
     }).save();
  }
  

Ответ №1:

Кажется, вы допустили опечатку в своем коде объекта :

 @Field(() => String)
  @CreateDateColumn()
  createdAt : Date;  //replace = with :

  @Field(() => String)
  @UpdateDateColumn()
  updatedAt : Date;  //replace = with :