Create new middleware lesson

Tell us what’s happening:
I can’t pass this test - A Get request to /profile should correctly redirect to / since we are not authenticated. I’m sure everything is right as it redirects properly.

Your code so far

'use strict';

const express     = require('express');
const bodyParser  = require('body-parser');
const fccTesting  = require('./freeCodeCamp/fcctesting.js');
const app = express();
const session = require("express-session");
const mongo = require("mongodb").MongoClient;
const passport = require("passport");
const ObjectID = require("mongodb").ObjectID;
const LocalStrategy = require("passport-local");
app.set("view engine", "pug");
process.env.SESSION_SECRET=5;
process.env.DATABASE="mongodb+srv://admin:admin@cluster0-feo3a.mongodb.net/test?retryWrites=true&w=majority"

fccTesting(app); //For FCC testing purposes
app.use('/public', express.static(process.cwd() + '/public'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.use(session({
  secret: process.env.SESSION_SECRET,
  resave: true,
  saveUninitialized: true
}))
app.use(passport.initialize());
app.use(passport.session());

mongo.connect(process.env.DATABASE, (err, db)=> {
  var db = db.db("test");
  if(err) {console.log('Database error: ' + err);}
else {
console.log("Successful database connection");

    
  passport.serializeUser((user, done)=>{
  done(null, user._id);
});

  passport.deserializeUser((id, done)=>{
  db.collection("users").findOne({id: new ObjectID(id)}, (err, doc)=>{
    done(null, doc);
   })
});
  
  passport.use(new LocalStrategy(
(username, password, done)=>{
  db.collection("users").findOne({username: username}, (err, user)=>{
    console.log("Username "+username+" attempted to log in.");
    if(err) return done(err);
    if(!user) return done(null,false);
    if(password !== user.password) return done(null, false);
    return done(null, user);
  })
}))
  
  app.route('/')
  .get((req, res) => {
   res.render(__dirname+"/views/pug/index.pug", {
     title: "Hello",
     message: "Please login",
     showLogin: true
   })
  });
  
  app.post("/login", passport.authenticate("local", {failureRedirect: "/"}), (req, res)=>{
   res.redirect("/profile");
  });
  
  function ensureAuthenticated(req, res, next) {
    
    if(req.isAuthenticated) {
      res.redirect("/");
    }
    else {
      next()
    }
};
  
 app
 .route('/profile')
 .get(ensureAuthenticated, (req,res) => {
    res.render(process.cwd() + '/views/pug/profile');
 });

  
  app.listen(process.env.PORT || 3000, () => {
  console.log("Listening on port " + process.env.PORT);
});
};
});





Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36.

Challenge: undefined

Link to the challenge: