Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const helper = require("./helpers/helper");
- //load module เข้ามาใช้
- const express = require("express"),
- app = express(),
- port = 4000 || process.env.SERVER_PORT;
- //Hide server-side technology information from the browser
- app.disable("x-powered-by");
- const bodyParser = require("body-parser");
- app.use(
- bodyParser.urlencoded({
- extended: true //true ทำให้ส่งค่าแบบนี้เข้ามาได้ a[name][] หรือ a[] (ส่งผ่าน application/x-www-form-urlencoded)
- })
- );
- // parse application/json
- app.use(bodyParser.json()); //ทำให้รับ json จาก body ได้
- const fileUpload = require("express-fileupload");
- app.use(
- fileUpload({
- //limits: { fileSize: 50 * 1024 * 1024 },
- })
- );
- const cookieParser = require("cookie-parser");
- app.use(cookieParser());
- const requestIp = require("request-ip");
- app.use(requestIp.mw()); //รับ id จาก request
- //กำหนดค่า
- const dotenv = require("dotenv");
- dotenv.config();
- const session = require("express-session");
- app.use(
- session({
- //กำหนดค่า session
- secret: process.env.SESSION_SECRET,
- cookie: {
- maxAge: 15 * 60 * 1000 //15 นาที
- },
- rolling: true,
- resave: true,
- saveUninitialized: true
- })
- );
- const fs = require("fs");
- const logPath = "./logs/nodejs-" + helper.dateNow() + ".log";
- try {
- if (!fs.existsSync(logPath)) {
- //ถ้าไม่พบไฟล์ log
- var myLog = "nodejs-" + helper.dateNow() + ".log";
- } else {
- var myLog = "nodejs-" + helper.dateNow() + ".log";
- }
- } catch (err) {
- console.error(err);
- }
- const log4js = require("log4js"); //กำหนด logging
- // log4js.configure({
- // appenders: { medium: { type: 'file', filename: './logs/'+myLog } }, //สร้าง config ตัวอย่างจะสร้างเป็นประเภทไฟล์
- // //categories สร้าง กลุ่ม log โดยกำหนด level ของ log ว่าจะให้ filter ในระดับไหน ( ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < MARK < OFF)
- // categories: { default: { appenders: ['medium'], level: 'error' } } //ถ้าใส่ 0 คือจะไม่มีการบันทึก log
- // });
- // const logger = log4js.getLogger('medium'); //เรียกใช้งาน category “medium” และทำสอบ write log ตาม level
- // logger.trace('level trace : medium trace');
- // logger.debug('level debug : medium debug');
- // logger.info('level info : medium info');
- // logger.warn('level warn : medium warn');
- // logger.error('level error : medium error');
- // logger.fatal('level fatal : medium fatal');
- log4js.configure({
- appenders: {
- console: { type: "console" },
- file: { type: "file", filename: "./logs/" + myLog }
- },
- categories: {
- myLog: { appenders: ["file"], level: "error" },
- default: { appenders: ["console"], level: "info" }
- }
- });
- const logger = log4js.getLogger("myLog");
- app.use(
- log4js.connectLogger(logger, {
- //level: 'info',
- level: "auto",
- statusRules: [
- { from: 200, to: 299, level: "debug" },
- { codes: [303, 304], level: "info" }
- ],
- format: (req, res, format) =>
- format(`:remote-addr :method :url ${JSON.stringify(req.body)}`),
- context: true
- })
- );
- //set route group
- express.application.prefix = express.Router.prefix = function(path, middleware = null, configure) {
- const customRouter = express.Router();
- this.use(path, middleware, customRouter);
- configure(customRouter);
- return customRouter;
- };
- //Gobal Variables
- global.__basedir = __dirname; //root directory
- global.__publicdir = __dirname + "/public"; //public directory
- //Load Connect MongoDB
- global.monmon = require("./config/mongodb");
- app.use((req, res, next) => {
- //ถ้ามี request เข้ามา ก็ให้เชื่อมต่อฐานข้อมูล
- //Load Connect MySql
- global.db = require("./config/mysql"); //ให้โหลด connection ทุกครั้ง สร้างตัวแปรชื่อ db('ชื่อตารางที่ต้องการ') เพื่อใช้ที่ไหนก็ได้
- if (req.headers.authorization) global.$auth = helper.auth(req); //สร้าง auth เอาไว้ใช้ดึงค่าออกจาก jwt เช่น $auth.id หรือ $auth.name
- next();
- });
- app.use(express.static("public")); //ทำ public_path เอาไว้ใช้เวลาลิ้งหาไฟล์
- //Middleware
- //Register Route
- const indexRouter = require("./route/web");
- const apiRouter = require("./route/api");
- app.use("/", indexRouter); //ลิ้งไม่ต้องผ่าน api
- app.use("/api", apiRouter); //ลิ้งสำหรับ api
- //Run Port
- app.listen(port, () => console.log(`รันผ่าน http://localhost:${port}`));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement