Files
FastGPT/packages/plugins/src/databaseConnection/index.ts
Archer 618729a254 Concat textinput to input type (#2963)
* perf: toast position

* concat textinput to input
2024-10-22 12:04:16 +08:00

71 lines
1.5 KiB
TypeScript

import { Client as PgClient } from 'pg'; // PostgreSQL 客户端
import mysql from 'mysql2/promise'; // MySQL 客户端
type Props = {
databaseType: string;
host: string;
port: string;
databaseName: string;
user: string;
password: string;
sql: string;
};
type Response = Promise<{
result: any; // 根据你的 SQL 查询结果类型调整
}>;
const main = async ({
databaseType,
host,
port,
databaseName,
user,
password,
sql
}: Props): Response => {
let result;
try {
if (databaseType === 'PostgreSQL') {
const client = new PgClient({
host,
port: parseInt(port, 10),
database: databaseName,
user,
password
});
await client.connect();
const res = await client.query(sql);
result = res.rows;
await client.end();
} else if (databaseType === 'MySQL') {
const connection = await mysql.createConnection({
host,
port: parseInt(port, 10),
database: databaseName,
user,
password
});
const [rows] = await connection.execute(sql);
result = rows;
await connection.end();
}
return {
result
};
} catch (error: unknown) {
// 使用类型断言来处理错误
if (error instanceof Error) {
console.error('Database query error:', error.message);
return Promise.reject(error.message);
}
console.error('Database query error:', error);
return Promise.reject('An unknown error occurred');
}
};
export default main;