56 lines
1.4 KiB
JavaScript
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}`);
|
|
});
|