try { const { Pool, Client } = require('pg') const XLSX = require('xlsx') const path = require('path') const fs = require("fs"); // 测试环境 const pool = new Pool({ user: 'postgres', host: '10.8.30.32', database: 'highways4good', password: '123', port: 5432, }) const fun = async () => { // note: we don't try/catch this because if connecting throws an exception // we don't need to dispose of the client (it will be undefined) const client = await pool.connect() try { await client.query('BEGIN') console.log(`开始`); let allVillageRes = (await client.query(`SELECT * FROM village`)).rows // console.log(allVillageRes); // 读取数据文件 let workbook = XLSX.readFile(path.join(__dirname, './data/村.xlsx')); let firstSheetName = workbook.SheetNames[0]; let worksheet = workbook.Sheets[firstSheetName]; let res = XLSX.utils.sheet_to_json(worksheet, { defval: '' }); let insertSql = '' for (let r of res) { console.log(r); if (r.v_n) { let village = allVillageRes.find(v => v.name === r.v_n) if (!village) { insertSql += `INSERT INTO village (name,township_code) VALUES ('${r.v_n}',${r.t_c});\n` } } } fs.writeFileSync('village.sql', insertSql, 'utf-8'); // await client.query('ROLLBACK') await client.query('COMMIT') console.log('执行完毕~') } catch (e) { await client.query('ROLLBACK') console.log('执行错误~') throw e } finally { client.release(); } } fun() } catch (error) { console.error(error) }