Add type insertion logic to fetch_and_insert.js

This commit is contained in:
vista-man
2025-03-20 13:19:18 +01:00
parent 896dcf83a7
commit 50cad302cf

View File

@@ -1,4 +1,4 @@
const fetch = require('node-fetch');
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));
const mysql = require('mysql');
const connection = mysql.createConnection({
@@ -10,6 +10,19 @@ const connection = mysql.createConnection({
connection.connect();
const types = [
'normal', 'fire', 'water', 'electric', 'grass', 'ice', 'fighting', 'poison', 'ground', 'flying', 'psychic', 'bug', 'rock', 'ghost', 'dragon', 'dark', 'steel', 'fairy'
];
const insertTypes = () => {
types.forEach(type => {
const typeQuery = `INSERT INTO types (name) VALUES (?) ON DUPLICATE KEY UPDATE name=name`;
connection.query(typeQuery, [type], (error, results, fields) => {
if (error) throw error;
});
});
};
const fetchPokemonData = async (id) => {
const url = `https://pokeapi.co/api/v2/pokemon/${id}/`;
const url2 = `https://pokeapi.co/api/v2/pokemon-species/${id}/`;
@@ -68,6 +81,7 @@ const insertPokemonData = (pokemon) => {
};
const fetchAndInsertAllPokemon = async () => {
insertTypes();
for (let i = 1; i <= 1010; i++) {
const pokemon = await fetchPokemonData(i);
insertPokemonData(pokemon);