diff options
Diffstat (limited to 'app.js')
-rw-r--r-- | app.js | 79 |
1 files changed, 79 insertions, 0 deletions
@@ -0,0 +1,79 @@ +const bodyParser = require("body-parser"), + methodOverride = require("method-override"), + mongoose = require("mongoose"), + express = require("express"), + busboy = require("connect-busboy"), + passport = require("passport"), + LocalStrategy = require("passport-local"), + flash = require("connect-flash"), + User = require("./models/user"), + app = express(); + +// IMPORT ROUTES +const indexRoutes = require('./routes/index'), + recipeRoutes = require('./routes/recipe'), + accountRoutes = require('./routes/account'), + catRoutes = require('./routes/cats'), + searchRoutes = require('./routes/search'); + +// MongoDB +mongoose.connect('mongodb://USER:PASSWORD@SERVER/DATABASE', { + useNewUrlParser: true, + useUnifiedTopology: true, + useFindAndModify: false, + useCreateIndex: true +}).then(() => console.log(`Database connected`)) +.catch((err) => console.log(Error, err)); + +// SETUP +app.set("view engine", "ejs"); +app.use(express.static(__dirname + "/public")); +app.use(bodyParser.urlencoded({ extended: true })); +app.use(methodOverride("_method")); +app.use(busboy()); +app.use(flash()); + +//========================================================== +// PASSPORT CONFIG +//========================================================== +app.use( + require("express-session")({ + secret: "I am gonna be the pirate king", + resave: false, + saveUninitialized: false, + }) +); +app.use(passport.initialize()); +app.use(passport.session()); +passport.use(new LocalStrategy(User.authenticate())); +passport.serializeUser(User.serializeUser()); +passport.deserializeUser(User.deserializeUser()); +//---------------------------------------------------------- + +// Current User and Flash Messages +app.use((req, res, next) => { + res.locals.currentUser = req.user; + res.locals.error = req.flash('error'); + res.locals.success = req.flash('success'); + next(); +}); + +// Routes +app.use('/', indexRoutes); +app.use('/recipe', recipeRoutes); +app.use('/account', accountRoutes); +app.use('/categories', catRoutes); +app.use('/search', searchRoutes); + +// Listen +app.listen(3000, () => { + console.log('Server started...'); +}) + +//http.createServer(function (req, res) { +// console.log('received request for url: ' + req.url); +// res.writeHead(200, {'Content-Type': 'text/html'}); +// res.end(); +//}).listen(3000, () => { +// console.log("Server started..."); +//}) |