app.js
1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const express = require('express');
const path = require('path');
const app = express();
const HTTPS = require('https');
const url = require('url');
require('dotenv').config();
//화면 별 router 연결, 라우터 호출해서 페이지를 불러오는데 사용함.
const mainRouter = require('./routes') //호출시 index.js 실행 (main.js : title 할당하고 main.html 열어줌)
const domain = "www.culturegallery.ml"
const sslport = 23023;
//디폴트 포트 값 : 8000
app.set('port', process.env.PORT || 23023);
//ejs (html포맷) 파일을 웹사이트에 view로 띄워주기 위한 view engine 설정.
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);
//각각의 요청에서 index.js에 등록된 router 호출해서 page를 전환함.
app.use('/', mainRouter);
//css, image 등 정적 파일을 public에서 불러옴 -> html과 연결함
app.use(express.static(path.join(__dirname, 'public')));
app.get("/find", function (req, res) {
var urlParsed = url.parse(req.url, true);
var querystring = urlParsed.query;
// 값이 querystring.word 으로 불러와짐 ( 검색 단어) : 제목에서 find만 구현하면됨.
res.send(querystring.word);
});
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(`Server is running at ${app.get('port')}`);
});
} catch (error) {
console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
console.warn(error);
}