overseer/index.js

56 lines
1.4 KiB
JavaScript

const express = require('express');
const session = require('express-session');
//const flash = require('express-flasher');
// instantiate new express.js app
const app = express();
const port = 3000;
// initialize database connection
(async () => {
const db = require('./src/models');
await db.sequelize.sync({
alter: true,
});
})();
// initialize express.js session
app.use(session({
resave: false, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'lord of the rings',
}));
// setup flash messaging
//app.use(flash.flash());
//app.use(flash.flashRead());
// set up body POST parameters
app.use(express.json());
app.use(express.urlencoded({
extended: true,
}));
// load the template engine
app.set('view engine', 'twig');
// enable static file serving
app.use(express.static('public'));
// load route handlers
const homeRoutes = require('./src/routes/home');
const itemRoutes = require('./src/routes/item');
// register route handlers
app.get('/', homeRoutes.getIndex);
app.get('/item/add', itemRoutes.getAdd);
app.post('/item/add', itemRoutes.postAdd);
app.get('/item/:id', itemRoutes.getItem);
app.get('/item/:id/edit', itemRoutes.getItemEdit);
app.post('/item/:id/edit', itemRoutes.postItemEdit);
// start app
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
});