2016-04-23 8 views
0

私は別のjsファイルの中に置いた以下の機能を持っています。引数を外部モジュールに渡すには?

私はpassport.jsを必要とする別のJavaScriptファイルの中にそれを使用しようとしている、と私はそれを作成した理由は、私が軽減そうですさらに私のアプリケーション

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

/* GET welcome page. */ 
router.get('/home', isLoggedIn, function(req, res, next) { 
    res.render('home', { 
     title: 'title', 
     user : req.user 
    }); 
}); 


// route middleware to make sure 
function isLoggedIn(req, res, next) { 
    // if user is authenticated in the session 
    if (req.isAuthenticated()) 
     return next(); 
    // if they aren't redirect them to the home page 
    res.redirect('/'); 
} 

module.exports = router; 

をモジュール化するapp.useを使用してそれを呼び出すしたいと思います私はそれを動作させるように見えることはできませんしかし

app.get('/home', isLoggedIn, function(req, res) { 
     res.render('home.ejs', { 
      user : req.user // get the user out of session and pass to template 
     }); 
    }); 

:冗長性は、次のコードを毎回使用しません。同じフォルダ内にあるにもかかわらず、認証されていません。getを発行したときにエラー404が見つかりません。どのように私はそれを外部のファイルに保持し、それを使用することができますか?私がそれを呼び出す場所からuser引数を渡すべきですか?

答えて

0
var express = require('express'); 
var router = express.Router(); 
module.exports = function (app, passport){ 

router.get('/home', isLoggedIn, function(req, res, next) { 
res.render('home', { 
    title: 'title', 
    user : req.user 
    }); 
}); 

return router; 
}; 

function isLoggedIn(req, res, next) { 

// if user is logged in - 
if (req.isAuthenticated()) 
    return next(); 

// if they aren't redirect them to home 
res.redirect('/'); 
} 
+0

ご回答いただきありがとうございます。私は1つの質問をどのように他のjsファイルからそれを呼び出すか?このような? :app.use( '/ home'、home); – abedzantout

+0

'require( './ models/routes.js')(アプリケーション、パスポート);' – noideawhattodo

+0

ReferenceError:ホームが定義されていません – abedzantout

関連する問題