最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

尝试通过ID获取特定类别时发生错误

网站源码admin16浏览0评论

尝试通过ID获取特定类别时发生错误

尝试通过ID获取特定类别时发生错误

因此,我已经检查了我的类别服务,类别实体和类别控制器。一切似乎都很好。当我尝试获取所有类别(/ api / categories)时,一切都像魅力一样。但是,当我尝试通过ID(/ api / categories / 2)获取一个特定的类别时,它抛出statusCode:500,“内部服务器错误”,并且在控制台中得到:


    [ExceptionsHandler] ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '."categoryId" = 2)' at line 1 +648ms
    QueryFailedError: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '."categoryId" = 2)' at line 1
        at new QueryFailedError (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\typeorm\error\QueryFailedError.js:11:28)
        at Query.<anonymous> (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\typeorm\driver\mysql\MysqlQueryRunner.js:170:45)
        at Query.<anonymous> (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\Connection.js:526:10)
        at Query._callback (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\Connection.js:488:16)
        at Query.Sequence.end (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:24)
        at Query.ErrorPacket (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\sequences\Query.js:92:8)
        at Protocol._parsePacket (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\Protocol.js:291:23)
        at Parser._parsePacket (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\Parser.js:433:10)
        at Parser.write (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\Parser.js:43:10)
        at Protocol.write (C:\Users\DS\Desktop\Projekat ePoslovanje\furniture-store\node_modules\mysql\lib\protocol\Protocol.js:38:16)

category.service.ts:


    import { Injectable } from "@nestjs/common";
    import { TypeOrmCrudService } from "@nestjsx/crud-typeorm";
    import { Category } from "entities/category.entity";
    import { InjectRepository } from "@nestjs/typeorm";
    import { Repository } from "typeorm";

    @Injectable()
    export class CategoryService extends TypeOrmCrudService<Category>{
        constructor(
            @InjectRepository(Category)
            public category: Repository<Category>
        ){
            super(category)
        }
    }

category.entity.ts


    import {
      Column,
      Entity,
      Index,
      JoinColumn,
      ManyToOne,
      OneToMany,
      PrimaryGeneratedColumn,
    } from "typeorm";
    import { Furniture } from "./furniture.entity";

    @Index("uq_category_name", ["name"], { unique: true })
    @Index("uq_category_image_path", ["imagePath"], { unique: true })
    @Index("fk_category_parent__category_id", ["parentCategoryId"], {})
    @Entity("category")
    export class Category {
      @PrimaryGeneratedColumn({ type: "int", name: "category_id", unsigned: true })
      categoryId: number;

      @Column("varchar", {
        name: "name",
        unique: true,
        length: 32
      })
      name: string;

      @Column("varchar", {
        name: "image_path",
        unique: true,
        length: 128
      })
      imagePath: string;


      @Column("int", {
        name: "parent__category_id",
        nullable: true,
        unsigned: true,
      })
      parentCategoryId: number | null;

      @ManyToOne(() => Category, (category) => category.categories, {
        onDelete: "NO ACTION",
        onUpdate: "CASCADE",
      })
      @JoinColumn([
        { name: "parent__category_id", referencedColumnName: "categoryId" },
      ])
      parentCategory: Category;

      @OneToMany(() => Category, (category) => category.parentCategory)
      categories: Category[];

      @OneToMany(() => Furniture, (furniture) => furniture.category)
      furnitures: Furniture[];
    }

category.controller.ts


    import { Controller } from "@nestjs/common";
    import { Crud } from "@nestjsx/crud";
    import { Category } from "entities/category.entity";
    import { CategoryService } from "src/services/category/category.service";

    @Controller('api/category')
    @Crud({
        model: {
            type: Category
        },
        params: {
            id: {
                field: 'categoryId',
                type: 'number',
                primary: true
            }
        },
        query: {
            join: {
                categories: {
                    eager: true
                },
                parentCategory: {
                    eager: true
                },
                furnitures: {
                    eager: true
                }
            }
        }
    })
    export class CategoryController {
       constructor(public service: CategoryService){}
    }

回答如下:

嘿,尝试在您的MySQL服务器上执行SET GLOBAL sql_mode = ANSI;

和ID:{字段:“ category_id” //没有categoryId

}

发布评论

评论列表(0)

  1. 暂无评论