如何将参数传递到外部模块中

How to pass arguments into an outside module?

本文关键字:外部 模块 参数传递      更新时间:2023-09-26

我有以下函数,我把它放在一个单独的js文件中。

我正在尝试在另一个需要护照.js的 javascript 文件中使用它,我想使用 app.use 来调用它以进一步模块化我的应用程序

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.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参数?

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('/');
}