This is how drizzle tells to setup db connection with mysql. I am using express and top level await without async, i dont understand how this works?
import { drizzle } from "drizzle-orm/mysql2";
import mysql from "mysql2/promise";
const connection = await mysql.createConnection({
host: "host",
user: "user",
database: "database",
...
});
const db = drizzle(connection);
I changed the code above to
import { drizzle } from "drizzle-orm/mysql2";
import mysql from "mysql2/promise";
import * as schema from "./schema";
let connection: mysql.Connection;
(async () => {
connection = await mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
multipleStatements: true,
});
})();
export const db = drizzle(connection, { schema: schema, mode: "default" });
but now i am getting an error Variable 'connection' is used before being assigned
I am unable to get it to work. What am I missing?