mirror of
https://github.com/laochan-eacnet/backend.git
synced 2026-09-29 02:08:05 +03:00
inject mongodb
This commit is contained in:
+16
-1
@@ -11,6 +11,7 @@ import { binaryBody } from './middlewares/binarybody.js';
|
||||
import { parseKxml } from './middlewares/parseKxml.js';
|
||||
import { decompress } from './middlewares/decompress.js';
|
||||
import config from './utils/config.js';
|
||||
import { MongoClient, Db } from 'mongodb';
|
||||
|
||||
function tryResolve<T>(token: InjectionToken<T>): T | undefined {
|
||||
if (!container.isRegistered(token)) return undefined;
|
||||
@@ -29,7 +30,20 @@ function register<T>(
|
||||
}
|
||||
|
||||
async function main(): Promise<void> {
|
||||
const logger = new Logger('main');
|
||||
const logger = new Logger('laochan-net');
|
||||
|
||||
logger.info('initialization...');
|
||||
|
||||
{
|
||||
logger.info('connecting to mongodb...');
|
||||
const client = await MongoClient.connect(config.mongoUrl);
|
||||
|
||||
container.register(Db, {
|
||||
useValue: client.db(config.dbName),
|
||||
});
|
||||
}
|
||||
|
||||
logger.info('creating koa app...');
|
||||
|
||||
const app = new Koa<DefaultState, ILaochanContext>()
|
||||
.use(async (ctx, next) => {
|
||||
@@ -126,6 +140,7 @@ async function main(): Promise<void> {
|
||||
return await next();
|
||||
});
|
||||
|
||||
logger.info('listening on %d', config.port);
|
||||
app.listen(config.port);
|
||||
}
|
||||
|
||||
|
||||
+19
-15
@@ -2,25 +2,29 @@ import dotenv from 'dotenv';
|
||||
dotenv.config();
|
||||
|
||||
class Config {
|
||||
get port() {
|
||||
return process.env.PORT ? parseInt(process.env.PORT) : 10573;
|
||||
}
|
||||
get port() {
|
||||
return process.env.PORT ? parseInt(process.env.PORT) : 10573;
|
||||
}
|
||||
|
||||
get selfUrl() {
|
||||
return process.env.SELF_URL ?? 'http://127.0.0.1:10573';
|
||||
}
|
||||
get selfUrl() {
|
||||
return process.env.SELF_URL ?? 'http://127.0.0.1:10573';
|
||||
}
|
||||
|
||||
get ntpUrl() {
|
||||
return process.env.NTP_URL ?? 'ntp://pool.ntp.org';
|
||||
}
|
||||
get ntpUrl() {
|
||||
return process.env.NTP_URL ?? 'ntp://pool.ntp.org';
|
||||
}
|
||||
|
||||
get mongoUrl() {
|
||||
return process.env.MONGO_URL ?? 'mongodb://127.0.0.1:27017';
|
||||
}
|
||||
get mongoUrl() {
|
||||
return process.env.MONGO_URL ?? 'mongodb://127.0.0.1:27017';
|
||||
}
|
||||
|
||||
get isDev() {
|
||||
return process.env.NODE_ENV !== 'production';
|
||||
}
|
||||
get dbName() {
|
||||
return process.env.DB_NAME ?? 'laochan-net';
|
||||
}
|
||||
|
||||
get isDev() {
|
||||
return process.env.NODE_ENV !== 'production';
|
||||
}
|
||||
}
|
||||
|
||||
export const config = new Config();
|
||||
|
||||
Reference in New Issue
Block a user