2016-04-24 3 views
0

Ich habe das in cr-route.js sich folgende Funktion, die dafür sorgt, dass der Benutzer, bevor Sie fortfahren authentifiziert und zeigt seinen NamenWarum erreicht meine Anwendung nicht die console.log?

module.exports = function (app, passport) { 

    // ===================================== 
    // HOME PAGE (with login links) ======== 
    // ===================================== 
    app.get('/', function (req, res) { 
     res.render('index.ejs'); // load the index.ejs file 
    }); 

    // ===================================== 
    // LOGIN =============================== 
    // ===================================== 
    // show the login form 
    app.route('/login') 
     .get(function (req, res) { 

      // render the page and pass in any flash data if it exists 
      res.render('login.ejs', { 
       message: req.flash('loginMessage') 
      }); 
     }) 

     // process the login form 
     .post(passport.authenticate('local-login', { 
       successRedirect: '/home', // redirect to the secure profile section 
       failureRedirect: '/', // redirect back to the signup page if there is an error 
       failureFlash: true // allow flash messages 
      }), 
      function (req, res) { 
       console.log("hello"); 


       if (req.body.remember) { 
        req.session.cookie.maxAge = 1000 * 60 * 3; 
       } else { 
        req.session.cookie.expires = false; 
       } 
       res.redirect('/'); 
      }); 

    // ===================================== 
    // SIGNUP ============================== 
    // ===================================== 
    // show the signup form 
    app.get('/signup', function (req, res) { 
     // render the page and pass in any flash data if it exists 
     res.render('signup.ejs', {message: req.flash('signupMessage')}); 
    }); 

    // process the signup form 
    app.post('/signup', passport.authenticate('local-signup', { 
     successRedirect: '/home', // redirect to the secure home section 
     failureRedirect: '/', // redirect back to the signup page if there is an error 
     failureFlash: true // allow flash messages 
    })); 

    // ===================================== 
    // Home SECTION ========================= 
    // ===================================== 
    // we will want this protected so you have to be logged in to visit 
    // we will use route middleware to verify this (the isLoggedIn function) 
    app.get('/home', isLoggedIn, function (req, res) { 
     res.render('home.ejs', { 
      title: 'C', 
      user: req.user // get the user out of session and pass to template 
     }); 
    }); 

    // ===================================== 
    // LOGOUT ============================== 
    // ===================================== 
    app.get('/logout', function (req, res) { 
     req.logout(); 
     res.redirect('/'); 
    }); 
}; 

ich diesen Weg bei home.js befindet sich aus der folgenden Modul nenne:

var express = require('express'); 
var router = express.Router(); 
var url = require('url'); 
var passport = require('passport'); 


    module.exports = function (app) { 
     require('../app/cr-route')(app, passport); 
     app.get('/home', function (req, res, next) { 
      var queryData = url.parse(req.url, true).query; 
      console.log('im in'); //not displaying 

     }); 
     return router; 
    }; 

dann nenne ich dieses Modul von app.js Datei, indem Sie den folgenden:

require('./routes/home')(app); 

Aber ich hav Es ist ein Gefühl, dass, obwohl ich in der Lage bin, die home.js erfolgreich zu laden, es immer noch nicht auf die get-Methode zugreifen kann.

Wie kann ich dieses Problem beheben?

Antwort

1

Sie haben die gleiche Route, /home definiert in cr-route.js und home.js. Ich nehme an das man in home.js nie aufgerufen wird weil es schon in cr-route.js

bearbeitet wurde