@hoangnam.io/qa-tools
Version:
Logging, Error handling, Notifying for Express codebase
49 lines (40 loc) • 1.52 kB
JavaScript
require("dotenv").config();
const express = require("express");
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
const cors = require("cors");
const { createLogMiddleware } = require("./logging/log-middleware");
const { getLogger } = require("./logging/logger");
const { getNotifier } = require("./notify");
const { getErrorHandlerMiddleware } = require("./error-handling");
app.use(cors());
// log requests
app.use(
createLogMiddleware(app, {
extractCallerFunc: (req) => req.userInfo,
gcProjectId: "kicc-384807",
mongoConfig: { connectionString: process.env.MONGODB_CONNECT_STRING, collectionName: "request_logs" },
// serviceAccountFilePath: "./service-account-key.json",
// fluentConfig: { host: "0.0.0.0" },
})
);
// logger
const logger = getLogger({
mongoConfig: { connectionString: process.env.MONGODB_CONNECT_STRING, collectionName: "logs" },
});
// logger.log({ status: 200, message: "hallo" });
// notifier
const notifier = getNotifier({
discord: {
url: "https://discord.com/api/webhooks/1104061419097424064/xbzZwInDBoKihzai4WLbXKUqJh0XlL0CPjjBvGKDRvRxVdEq3I32nHtwZFp6fJmVfebE",
enable: true,
},
});
app.use(require("./auth"));
app.use(require("./test"));
// handle error
const errorHandler = getErrorHandlerMiddleware(notifier, (req) => req.userInfo, "TestLogLib");
app.use(errorHandler);
const PORT = process.env.PORT || 8000;
app.listen(PORT, () => console.log(`${process.env.APP_NAME} listening on port ${PORT}!`));