2014-06-15 3 views
0

Je suis en train de faire cette lignenode.js exprimer une variable undefined?

router.post ('/ login', passport.authenticate ...)

Et le routeur est dans le dossier du routeur de mon répertoire. Je l'ai exporté en tant que module et je l'utilise dans mon fichier app.js.

En app.js je me EXIGE dans cet ordre:

var passport = require('passport'); 
var routes = require('./routes/index'); 
var users = require('./routes/users'); 
var User = require('./models/models.js') 

ne devrait donc pas les routes pouvoir accéder à un passeport?

Ceci est mon parcours/index

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

/* GET home page. */ 
router.get('/', function(req, res) { 
    res.render('index', { title: 'Express' }); 
}); 

router.post('/login', passport.authenticate('local', { 
    successRedirect: '/home', 
    failureRedirect: '/login', 
    failureFlash: true 
})); 

router.get('/login', function(req, res, next) { 
    var errors = req.flash('error'); 
}) 
module.exports = router; 

C'est le début de mes app.js

var express = require('express'); 
var path = require('path'); 
var favicon = require('static-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 
var passport = require('passport'); 
var routes = require('./routes/index'); 
var users = require('./routes/users'); 
var User = require('./models/models.js'); 
var PassportLocalStrategy = require('passport-local'); 
+1

le code postal que vous avez utilisé pour exporter le module. – Michael

+0

Avez-vous essayé 'require (" ./ config/passport ") (passeport); – royhowie

+0

Ajout du code, pas besoin de config car je n'ai pas un tel dossier – user3340037

Répondre

0

besoin de re-inclure passeport comme une variable à l'intérieur du module.

0

Ajoutezen haut de votre fichier routes/index.js.

Ou, envelopper votre routeur dans un module.exports = function(passport) {}; et passer passport dans l'exigence routes dans app.js.

Comme ceci: var routes = require('./routes/index')(passport);