init
This commit is contained in:
31
src/server.js
Normal file
31
src/server.js
Normal file
@@ -0,0 +1,31 @@
|
||||
const { createApp } = require("./app");
|
||||
const { config } = require("./config");
|
||||
const { closeMongo, connectToMongo } = require("./db/client");
|
||||
const { ensureIndexes } = require("./db/indexes");
|
||||
|
||||
async function start() {
|
||||
const db = await connectToMongo();
|
||||
await ensureIndexes(db);
|
||||
|
||||
const app = createApp();
|
||||
const server = app.listen(config.port, () => {
|
||||
console.log(`Dune API listening on http://localhost:${config.port}`);
|
||||
console.log(`Swagger UI available at http://localhost:${config.port}/docs`);
|
||||
});
|
||||
|
||||
async function shutdown(signal) {
|
||||
console.log(`Received ${signal}, shutting down`);
|
||||
server.close(async () => {
|
||||
await closeMongo();
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
|
||||
process.on("SIGINT", shutdown);
|
||||
process.on("SIGTERM", shutdown);
|
||||
}
|
||||
|
||||
start().catch((error) => {
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user