import fetch from 'node-fetch'; import postgres from 'postgres'; import {drizzle} from 'drizzle-orm/postgres-js'; import {pgTable, text} from 'drizzle-orm/pg-core'; // PostgreSQL 데이터베이스 연결 설정 const sql = postgres({ host: '172.30.1.93', // PostgreSQL 호스트 port: 5432, // 포트 (기본값: 5432) database: 'bizinfo', // 데이터베이스 이름 username: 'postgres', // 사용자 이름 password: 'Dlstjq0904!' // 비밀번호 }); const orm = drizzle(sql); // Drizzle ORM 초기화 // PostgreSQL nice 테이블 정의 const niceTable = pgTable('nice', { empnum_bse_date: text('empnum_bse_date'), zcd3: text('zcd3'), bnknm: text('bnknm'), btpnm: text('btpnm'), etl_ipc_yn: text('etl_ipc_yn'), upt_date: text('upt_date'), korreprnm: text('korreprnm'), nolt_sgng: text('nolt_sgng'), zcd2: text('zcd2'), dtlcont: text('dtlcont'), crpno_rsdrgsbdtsexvl: text('crpno_rsdrgsbdtsexvl'), nolt_sido3: text('nolt_sido3'), chulja: text('chulja'), etb_date: text('etb_date'), nolt_sido2: text('nolt_sido2'), eqrObl: text('eqrObl'), slandc: text('slandc'), tel: text('tel'), fax: text('fax'), scl: text('scl'), zipareacdseq3: text('zipareacdseq3'), zipareacdseq2: text('zipareacdseq2'), nolt_sgng2: text('nolt_sgng2'), fadivcd: text('fadivcd'), sventure: text('sventure'), nolt_emdg: text('nolt_emdg'), zarcd: text('zarcd'), opt_entrnm: text('opt_entrnm'), empnum: text('empnum'), kor_itemnm: text('kor_itemnm'), upt_dtm: text('upt_dtm'), mainupche: text('mainupche'), nolt_engaddr2: text('nolt_engaddr2'), nolt_engaddr3: text('nolt_engaddr3'), nolt_dtl_koraddr: text('nolt_dtl_koraddr'), zipareacdseq: text('zipareacdseq'), nolt_sgng3: text('nolt_sgng3'), eng_idscdnm: text('eng_idscdnm'), tel2: text('tel2'), engentrnm: text('engentrnm'), crprgrnstscd: text('crprgrnstscd'), rbtpnm: text('rbtpnm'), engaddr3: text('engaddr3'), homepurl: text('homepurl'), tel3: text('tel3'), engaddr2: text('engaddr2'), amnisuyn: text('amnisuyn'), sido: text('sido'), bzdnm: text('bzdnm'), eng_scl: text('eng_scl'), zcd: text('zcd'), nolt_sido: text('nolt_sido'), repr_regno: text('repr_regno'), scaledivcd: text('scaledivcd'), eqrOblEng: text('eqrOblEng'), cls_yndivcd: text('cls_yndivcd'), zarcd3: text('zarcd3'), zarcd2: text('zarcd2'), nolt_dtl_koraddr2: text('nolt_dtl_koraddr2'), nolt_dtl_koraddr3: text('nolt_dtl_koraddr3'), idscdid: text('idscdid'), eng_mainupche: text('eng_mainupche'), eprdtldivcd: text('eprdtldivcd'), fa_bse_date: text('fa_bse_date'), sbqc_date: text('sbqc_date'), koraddr: text('koraddr'), koraddr3: text('koraddr3'), nolt_koraddr: text('nolt_koraddr'), koraddr2: text('koraddr2'), ltg_date: text('ltg_date'), rbtpnm3: text('rbtpnm3'), nolt_koraddr3: text('nolt_koraddr3'), nolt_koraddr2: text('nolt_koraddr2'), x: text('x'), y: text('y'), rdnm_sido2: text('rdnm_sido2'), hupegbn: text('hupegbn'), kisreporturl: text('kisreporturl'), rdnm_sido3: text('rdnm_sido3'), rbtpnm2: text('rbtpnm2'), mainpdtpcl: text('mainpdtpcl'), stkcd: text('stkcd'), bizno: text('bizno'), grpnm: text('grpnm'), sbn_date: text('sbn_date'), eprmdydivcd: text('eprmdydivcd'), eprdatastsdivcd: text('eprdatastsdivcd'), bnk_brnm: text('bnk_brnm'), korentrnm: text('korentrnm'), fax3: text('fax3'), logo: text('logo'), fax2: text('fax2'), rdnm_dtl_koraddr: text('rdnm_dtl_koraddr'), rdnm_sgng3: text('rdnm_sgng3'), rdnm_sido: text('rdnm_sido'), eng_grpnm: text('eng_grpnm'), nts_sbqcdivcd: text('nts_sbqcdivcd'), eng_mainpdtpcl: text('eng_mainpdtpcl'), kiscode: text('kiscode'), korreprcd: text('korreprcd'), engaddr: text('engaddr'), rdnm_sgng2: text('rdnm_sgng2'), smanda: text('smanda'), ltgmktdivcd: text('ltgmktdivcd'), obz_date: text('obz_date'), x2: text('x2'), eng_itemnm: text('eng_itemnm'), x3: text('x3'), fadivnm: text('fadivnm'), sforeign: text('sforeign'), eml: text('eml'), crpno: text('crpno'), rdnm_sgng: text('rdnm_sgng'), y2: text('y2'), nolt_emdg3: text('nolt_emdg3'), y3: text('y3'), nolt_emdg2: text('nolt_emdg2'), korrdnm: text('korrdnm'), eng_btpnm: text('eng_btpnm'), bzdnm2: text('bzdnm2'), bzdnm3: text('bzdnm3'), kor_idscdnm: text('kor_idscdnm'), eng_bnknm: text('eng_bnknm'), logossl: text('logossl'), stacmm: text('stacmm'), idscd: text('idscd'), repr_rsdrgsbdtsexvl: text('repr_rsdrgsbdtsexvl'), gicd: text('gicd'), epr_cnu_yn: text('epr_cnu_yn'), nolt_engaddr: text('nolt_engaddr'), korrdnm3: text('korrdnm3'), korrdnm2: text('korrdnm2'), engreprnm: text('engreprnm'), rdnm_dtl_koraddr3: text('rdnm_dtl_koraddr3'), rdnm_dtl_koraddr2: text('rdnm_dtl_koraddr2') }); async function main() { const baseUrl = 'https://nice.kegorii.workers.dev/get?t='; const firstArray = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'H', 'I', 'J', 'L', 'M', 'N', 'O', 'P', 'Q'] for (let i = 0; i < firstArray.length; i++) { let secondArray = []; if (i >= 0 && i <= 9) { secondArray = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; } else { secondArray = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']; } console.log(secondArray); for (let x = 0; x < secondArray.length; x++) { for (let y = 5; y < 20; y++) { const rtnval = y.toString().padStart(3, '0'); const kiscode = firstArray[i] + secondArray[x] + rtnval; const url = `${baseUrl}${kiscode}`; console.log(firstArray[i] + secondArray[x] + rtnval); try { const response = await fetch(url); if (!response.ok) { throw new Error(`Request failed: ${response.statusText}`); } const jsonData = await response.json(); const insertValues = jsonData.map(item => ({ ...item // 모든 데이터를 그대로 삽입 (데이터 정제 필요) })); if (insertValues.length > 0) { await orm.insert(niceTable).values(insertValues); } } catch (error) { console.error(`Error at kiscode:${kiscode}`, error); } console.log('ok'); } } } } main();