server.js 1.79 KB
const express = require("express");
const fs = require("fs");
const path = require("path");
const HTTPS = require("https");
const mysql = require('mysql');

const app = express();
const domain = "2020105635.oss2021.tk";
const sslport = 8080;

const dotenv = require('dotenv').config();   //dotenv를 사용하기 위해서 dotenv 라이브러리를 불러온 뒤, config() 메소드를 호출
const mysqlConObj = require('./config/mysql');   //config의 mysql파일을 가져와 mysqlConnection 객체 사용
const db = mysqlConObj.init();

app.use(express.static(path.join(__dirname, "kakao")));
app.use(express.static(path.join(__dirname, "public")));

mysqlConObj.open(db);   //db 연결

db.query('SELECT * FROM csvdata.csvdata', function (error, results, fields) {
  if (error) {
      throw(error);
  }
  console.log(results[0].amount);
});

app.get("/", function (req, res) {
  res.sendFile(path.join(__dirname + "/main.html"));
});

app.get("/geolocation", function (req, res) {
  res.sendFile(path.join(__dirname + "/kakao/kakaomap.html"));
});

try {
  const option = {
    ca: fs.readFileSync("/etc/letsencrypt/live/" + domain + "/fullchain.pem"),
    key: fs
      .readFileSync(
        path.resolve(
          process.cwd(),
          "/etc/letsencrypt/live/" + domain + "/privkey.pem"
        ),
        "utf8"
      )
      .toString(),
    cert: fs
      .readFileSync(
        path.resolve(
          process.cwd(),
          "/etc/letsencrypt/live/" + domain + "/cert.pem"
        ),
        "utf8"
      )
      .toString(),
  };

  HTTPS.createServer(option, app).listen(sslport, () => {
    console.log(`[HTTPS] Server is started on port ${sslport}`);
  });
} catch (error) {
  console.log(
    "[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다."
  );
  console.log(error);
}