55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
|
import { NextApiRequest, NextApiResponse } from 'next';
|
||
|
import { supabase, isSupabaseConfigured } from '../../lib/supabase';
|
||
|
|
||
|
export default async function handler(
|
||
|
req: NextApiRequest,
|
||
|
res: NextApiResponse
|
||
|
) {
|
||
|
if (req.method !== 'GET') {
|
||
|
return res.status(405).json({ error: '方法不允许' });
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
// 检查配置
|
||
|
const isConfigured = isSupabaseConfigured();
|
||
|
|
||
|
if (!isConfigured) {
|
||
|
return res.status(200).json({
|
||
|
success: false,
|
||
|
mode: 'demo',
|
||
|
message: '当前运行在演示模式,未配置 Supabase 数据库'
|
||
|
});
|
||
|
}
|
||
|
|
||
|
// 测试数据库连接
|
||
|
const { data, error } = await supabase
|
||
|
.from('users')
|
||
|
.select('count')
|
||
|
.limit(1);
|
||
|
|
||
|
if (error) {
|
||
|
console.error('数据库连接错误:', error);
|
||
|
return res.status(500).json({
|
||
|
success: false,
|
||
|
mode: 'production',
|
||
|
error: error.message,
|
||
|
message: '数据库连接失败'
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return res.status(200).json({
|
||
|
success: true,
|
||
|
mode: 'production',
|
||
|
message: '数据库连接成功',
|
||
|
timestamp: new Date().toISOString()
|
||
|
});
|
||
|
|
||
|
} catch (error: any) {
|
||
|
console.error('连接测试失败:', error);
|
||
|
return res.status(500).json({
|
||
|
success: false,
|
||
|
error: error.message,
|
||
|
message: '连接测试失败'
|
||
|
});
|
||
|
}
|
||
|
}
|