feat(db): basic db connection done

This commit is contained in:
2024-10-25 21:41:26 +02:00
parent 59c0f05b4f
commit 0379fd4e28
7 changed files with 217 additions and 7 deletions

28
back-express/src/db.ts Normal file
View File

@@ -0,0 +1,28 @@
import mysql, { QueryError } from "mysql2/promise";
import { ResponseError } from "./utils/error/response-error.model";
const db_pool = mysql.createPool({
host: "localhost",
port: 3307,
user: "dbuser",
password: "securepassword",
database: "path",
});
async function DB_Query<T>(
query: string,
): Promise<Partial<T>[] | ResponseError> {
try {
const [results, _fields] = await db_pool.query(query);
return results as T[];
} catch (e) {
const queryError = e as QueryError;
throw new ResponseError({
code: queryError.code,
number: queryError.errno,
detail: queryError.message,
});
}
}
export { db_pool as db_connection, DB_Query as db_query };

View File

@@ -2,8 +2,10 @@ import express from "express";
import { defaultRoute } from "./defaultRoute";
import { exampleRoutes } from "./example/example.routes";
import { userRoutes } from "./users/users.routes";
export const routes = express.Router();
routes.use("/", defaultRoute);
routes.use("/example", exampleRoutes);
routes.use("/users", userRoutes);

View File

@@ -0,0 +1,20 @@
import { Router } from "express";
import UserService from "./users.service";
import { ResponseError } from "../../utils/error/response-error.model";
export const userRoutes = Router();
const userService = new UserService();
userRoutes.get("/", async (req, res) => {
try {
const response = await userService.getAllUsers();
// console.log("__DB_DATA", data);
res.status(200);
res.send(response);
} catch (e) {
// const response_error = new ResponseError(e);
res.status(400);
res.send(e);
}
});

View File

@@ -1,11 +1,35 @@
import { db_connection, db_query } from "../../db";
class UserService {
constructor() {}
getAllUsers() {}
getUserById(id: number) {
return 3;
async getTestUsers() {
const data = await db_connection.execute("select * from user");
return data;
}
async getAllUsers() {
try {
const data = await db_query("select * from user where user.id == 3");
return { value: data, example: "algo" };
} catch (e) {
return e;
}
}
// getUserById(id: number) {
// return new Promise((resolve, reject) =>
// db_connection.query("select * from user", (err, rows, fields) => {
// console.log(rows);
// if (err) {
// console.error("Mysql Error on User SELECT: ", err);
// reject(err);
// } else {
// resolve(rows);
// }
// }),
// );
// }
}
export default UserService;

View File

@@ -0,0 +1,14 @@
export class ResponseError extends Error {
constructor(
public error: {
code: string | number;
number?: number;
detail?: string;
status?: number;
suggestion?: string;
},
public timestamp: number = Date.now(),
) {
super();
}
}