新增 App 建立、資料呈現

This commit is contained in:
2025-08-05 16:13:09 +08:00
parent d0c4adf243
commit 5b407ff29c
51 changed files with 6039 additions and 78 deletions

65
scripts/check-users.js Normal file
View File

@@ -0,0 +1,65 @@
const mysql = require('mysql2/promise');
const jwt = require('jsonwebtoken');
const JWT_SECRET = process.env.JWT_SECRET || 'good777';
async function checkUsers() {
try {
// 連接資料庫
const connection = await mysql.createConnection({
host: 'mysql.theaken.com',
port: 33306,
user: 'AI_Platform',
password: 'Aa123456',
database: 'db_AI_Platform'
});
console.log('=== 檢查用戶 ===');
// 檢查用戶
const [userRows] = await connection.execute('SELECT id, email, name, role FROM users LIMIT 5');
console.log('用戶列表:');
userRows.forEach(user => {
console.log(` ID: ${user.id}, Email: ${user.email}, Name: ${user.name}, Role: ${user.role}`);
});
// 為第一個用戶生成 token
if (userRows.length > 0) {
const user = userRows[0];
const token = jwt.sign({
userId: user.id,
email: user.email,
role: user.role
}, JWT_SECRET, { expiresIn: '1h' });
console.log('\n生成的 Token:');
console.log(token);
// 測試 API
console.log('\n=== 測試 API ===');
const response = await fetch('http://localhost:3000/api/apps?page=1&limit=10', {
headers: {
'Authorization': `Bearer ${token}`
}
});
if (response.ok) {
const data = await response.json();
console.log('✅ API 回應成功');
console.log('分頁資訊:', data.pagination);
console.log('統計資訊:', data.stats);
console.log(`應用程式數量: ${data.apps?.length || 0}`);
} else {
console.log('❌ API 回應失敗:', response.status, response.statusText);
const errorText = await response.text();
console.log('錯誤詳情:', errorText);
}
}
await connection.end();
} catch (error) {
console.error('檢查失敗:', error);
}
}
checkUsers();