Files
org-todo-pwa/server.js

42 lines
1.3 KiB
JavaScript

require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');
const session = require('express-session');
const cookieParser = require('cookie-parser');
const SQLiteStore = require('connect-sqlite3')(session);
const debug = require('debug')('app');
const tasksRouter = require('./routes/tasks');
const authRouter = require('./routes/auth');
const authMiddleware = require('./middleware/auth');
const app = express();
const port = 3044;
app.use(bodyParser.json());
app.use(cookieParser());
app.use(express.static('public'));
// Configure session middleware with SQLite store
app.use(session({
secret: process.env.SESSION_SECRET || 'default_secret', // Use a strong secret in production
resave: false,
saveUninitialized: false,
store: new SQLiteStore({
db: 'sessions.sqlite',
dir: '/data',
ttl: 30 * 24 * 60 * 60 // 1 month
}),
cookie: {
//secure: process.env.NODE_ENV === 'production', // Ensure cookies are only sent over HTTPS in production
secure: false,
maxAge: 30 * 24 * 60 * 60 * 1000 // 1 month
}
}));
app.use('/', authRouter);
app.use('/', authMiddleware, tasksRouter);
app.listen(port, () => {
debug(`Server running at http://localhost:${port}`);
});