mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-08-11 11:02:27 +08:00
refactor(server/session): better error management
This commit is contained in:
parent
b313b0b965
commit
43ab13e126
@ -2,19 +2,26 @@ import sql from "../services/sql.js";
|
|||||||
import session, { Store } from "express-session";
|
import session, { Store } from "express-session";
|
||||||
import sessionSecret from "../services/session_secret.js";
|
import sessionSecret from "../services/session_secret.js";
|
||||||
import config from "../services/config.js";
|
import config from "../services/config.js";
|
||||||
|
import log from "../services/log.js";
|
||||||
|
|
||||||
class SQLiteSessionStore extends Store {
|
class SQLiteSessionStore extends Store {
|
||||||
|
|
||||||
get(sid: string, callback: (err: any, session?: session.SessionData | null) => void): void {
|
get(sid: string, callback: (err: any, session?: session.SessionData | null) => void): void {
|
||||||
|
try {
|
||||||
const data = sql.getValue<string>(/*sql*/`SELECT data FROM sessions WHERE id = ?`, sid);
|
const data = sql.getValue<string>(/*sql*/`SELECT data FROM sessions WHERE id = ?`, sid);
|
||||||
let session = null;
|
let session = null;
|
||||||
if (data) {
|
if (data) {
|
||||||
session = JSON.parse(data);
|
session = JSON.parse(data);
|
||||||
}
|
}
|
||||||
return callback(null, session);
|
return callback(null, session);
|
||||||
|
} catch (e: unknown) {
|
||||||
|
log.error(e);
|
||||||
|
return callback(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
set(id: string, session: session.SessionData, callback?: (err?: any) => void): void {
|
set(id: string, session: session.SessionData, callback?: (err?: any) => void): void {
|
||||||
|
try {
|
||||||
const expires = Date.now() + 3600000; // Session expiration time (1 hour from now)
|
const expires = Date.now() + 3600000; // Session expiration time (1 hour from now)
|
||||||
const data = JSON.stringify(session);
|
const data = JSON.stringify(session);
|
||||||
|
|
||||||
@ -24,12 +31,20 @@ class SQLiteSessionStore extends Store {
|
|||||||
data
|
data
|
||||||
});
|
});
|
||||||
callback?.();
|
callback?.();
|
||||||
|
} catch (e) {
|
||||||
|
log.error(e);
|
||||||
|
return callback?.(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy(sid: string, callback?: (err?: any) => void): void {
|
destroy(sid: string, callback?: (err?: any) => void): void {
|
||||||
console.log("Destroy ", sid);
|
try {
|
||||||
sql.execute(/*sql*/`DELETE FROM sessions WHERE id = ?`, sid);
|
sql.execute(/*sql*/`DELETE FROM sessions WHERE id = ?`, sid);
|
||||||
callback?.();
|
callback?.();
|
||||||
|
} catch (e) {
|
||||||
|
log.error(e);
|
||||||
|
callback?.(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ function info(message: string | Error) {
|
|||||||
log(message);
|
log(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
function error(message: string | Error) {
|
function error(message: string | Error | unknown) {
|
||||||
log(`ERROR: ${message}`);
|
log(`ERROR: ${message}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user