Не могу принести идентификатор из моей базы данных Sequelize-Express

#javascript #node.js #express #parameters #sequelize.js

Вопрос:

Я работаю над секвенированием и маршрутизацией в Express, и мне нужно работать как с REST api, так и с базой данных. В этом случае я использую UUIDV4, чтобы установить свой идентификатор на моей модели покемона:

ID: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true, allowNull: false},

И я привожу из api покемонов и использую запрос. Моя проблема заключается в попытке вывести покемонов по идентификатору либо из api, либо из БД. Когда я вызываю по идентификатору покемонов из api, у которого есть числовой номер, у него нет проблем, но когда я пытаюсь позвонить по идентификатору в моей БД, кажется, что он просто читает, что идентификатор не существует. Я попытался решить с помощью условного, который, если мой идентификатор не числовой, он должен получить доступ к базе данных, но, похоже, он не работает.

Я был бы признателен за любой намек или совет к моему коду, спасибо.

 router.get("/:id", async function PokemonID(req, res) {
    const { id } = req.params;
    if (id) {
      if (typeof Number(id) === "number") {
        try {
          const ASH = await axios.get(`https://pokeapi.co/api/v2/pokemon/${id}`);
          let obj = {
            ID: ASH.data.id,
            name: upperFirst(ASH.data.name),
            hp: ASH.data.stats.find((e) => e.stat.name === "hp").base_stat,
            attack: ASH.data.stats.find((e) => e.stat.name === "attack")
              .base_stat,
            defense: ASH.data.stats.find((e) => e.stat.name === "defense")
              .base_stat,
            speed: ASH.data.stats.find((e) => e.stat.name === "speed")
              .base_stat,
            height: ASH.data.height,
            weight: ASH.data.weight,
            image: ASH.data.sprites.other.dream_world.front_default,
            created: false,
            type: ASH.data.types.map((e) => upperFirst(e.type.name)),
          };
          return res.json(obj);
        } catch (error) {
          res.status(400).send("ID NOT EXISTS");
        }
      } if(typeof Number(id) !== "number") {
        try {
          let query = await Pokemon.findByPk(id, {
            include: { model: Type },
          });
           res.json(query);
        } catch (error) {
          res.status(400).send(`No ID ${id} on DB`);
        }
      }
    }
  });```