2016-04-05 19 views
0

Passport ile çalışıyorum ve denetleyiciden yönlendiricime kadar birçok parametreyi geçirmem gerekiyor. Temel olarak sadece ilkini geçer.Node.js Express'te denetleyiciden birden çok parametre nasıl iletilir

Ben sadece 1 parametresini yükler Şu anda

app.get('/auth/steam', controllers.auth.authenticate); 

app.get('/auth/steam', passport.authenticate('steam'), function(req, res) { res.render('index') };); 

sonuçlanması almak istiyorum.

Benim denetleyicisi bunu yapacağımı nasıl bu

exports.authenticate = 
    passport.authenticate('steam'), 
    function(req, res) { 
    res.render('index'); 
    }; 

benziyor?

DÜZENLEME: Ben sadece böyle değil dizideki, controllers.auth.authenticate ile arama yapabilmek istiyorum: controllers.auth.authenticate [0]!

cevap

0

Uyarı NOT test edilmemiştir.

Hepiniz iç işlevini

exports.authenticate = function(req, res, next) { 
    passport.authenticate('steam', function(err, user, info) { 
    if (err) { return next(err); } 
    if (!user) { return res.redirect('/auth/steam'); } 

    res.render("index"); 
    }); 
} 

sarar Yoksa router kullanabilir ve

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

router.use(function (req, res, next) { 
    passport.authenticate('steam'); 
}); 

router.get('/', function(req, res, next) { 
    res.render("index"); 
}); 

module.exports = router; 

TÜM fiiller (olsun, yazı, vb) korumak Ve uygulamasında yönlendirici kullanabilirsiniz

var ctrl = require("yourModuleName"); 
app.use('/auth/steam', ctrl); // app.use NOT app.get 

Diğer alternatif yalnızca get numaralı kitabı korumaktır

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

router.get('/', passport.authenticate('steam'), function(req, res, next) { 
    res.render("index"); 
}); 

module.exports = router; 

var ctrl = require("yourModuleName"); 
app.use('/auth/steam', ctrl); // app.use NOT app.get 

Express routing sayfaya bakın

İlgili konular