Full-stack Next.js: la home lee MySQL directamente (sin Django)
Pivote a Next.js full-stack (Django saldrá del todo en el cutover). Next accede a las mismas BD MySQL que Django: - lib/db.ts: pools mysql2 (django_wow + acore_*), singleton en globalThis, creds en web-next/.env.local (gitignored, copiadas del .env de Django). - lib/home.ts: getNoticias (home_noticia), getServerStatus (home_serverselection + online desde acore_characters + TCP check + expansión por gamebuild, incl. Classic). - app/page.tsx: home SSR que llama a lib/home (ya NO a la API Django). Se elimina lib/api.ts. Verificado: con el servicio Django PARADO, la home de Next sigue sirviendo 200 con datos reales -> lee MySQL directo, Django fuera del circuito. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import mysql from 'mysql2/promise'
|
||||
|
||||
// Pools de conexión a las mismas BD MySQL que usaba Django (django_wow + acore_*).
|
||||
// Se guardan en globalThis para no crear pools nuevos en cada hot-reload de dev.
|
||||
const g = globalThis as unknown as { _nwPools?: Record<string, mysql.Pool> }
|
||||
g._nwPools ??= {}
|
||||
|
||||
export function db(database: string): mysql.Pool {
|
||||
if (!g._nwPools![database]) {
|
||||
g._nwPools![database] = mysql.createPool({
|
||||
host: process.env.DB_HOST || '127.0.0.1',
|
||||
port: Number(process.env.DB_PORT || 3306),
|
||||
user: process.env.DB_USER,
|
||||
password: process.env.DB_PASSWORD,
|
||||
database,
|
||||
waitForConnections: true,
|
||||
connectionLimit: 5,
|
||||
namedPlaceholders: true,
|
||||
})
|
||||
}
|
||||
return g._nwPools![database]
|
||||
}
|
||||
|
||||
export const DB = {
|
||||
default: process.env.DB_NAME_DEFAULT || 'django_wow',
|
||||
auth: process.env.DB_NAME_AUTH || 'acore_auth',
|
||||
characters: process.env.DB_NAME_CHARACTERS || 'acore_characters',
|
||||
world: process.env.DB_NAME_WORLD || 'acore_world',
|
||||
web: process.env.DB_NAME_WEB || 'acore_web',
|
||||
}
|
||||
Reference in New Issue
Block a user