48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
|
require('dotenv').config();
|
||
|
import express from 'express';
|
||
|
import path from 'path';
|
||
|
import flash from 'express-flash';
|
||
|
import session from 'express-session';
|
||
|
import cookieParser from 'cookie-parser';
|
||
|
import methodOverride from 'method-override';
|
||
|
|
||
|
import sequelize from './dbobject';
|
||
|
import {dbConnectAndInit} from './db';
|
||
|
|
||
|
import adminRouter from './routes/admin';
|
||
|
import blogRouter from './routes/blog';
|
||
|
import apiRouter from './routes/api';
|
||
|
|
||
|
const app = express();
|
||
|
|
||
|
dbConnectAndInit(sequelize);
|
||
|
|
||
|
app.set('view engine', 'ejs');
|
||
|
|
||
|
app.use(cookieParser());
|
||
|
app.use(express.urlencoded({extended: false}));
|
||
|
app.use(methodOverride('_method'));
|
||
|
app.use('/js', express.static(path.join(__dirname, '../../dist/client')));
|
||
|
app.use('/static', express.static(path.join(__dirname, '../../public')));
|
||
|
app.use(session({
|
||
|
cookie: {
|
||
|
maxAge: 60000,
|
||
|
httpOnly: true,
|
||
|
secure: false, // set this to true in production
|
||
|
},
|
||
|
secret: process.env.SESSION_SECRET!,
|
||
|
resave: false,
|
||
|
saveUninitialized: false,
|
||
|
}));
|
||
|
app.use(flash());
|
||
|
|
||
|
app.get('/', (_req, res) => {
|
||
|
res.render('index');
|
||
|
});
|
||
|
|
||
|
app.use('/admin', adminRouter);
|
||
|
app.use('/blog', blogRouter);
|
||
|
app.use('/api', apiRouter);
|
||
|
|
||
|
app.listen(3000);
|