Node.js Can';t从nodejs导出第二个函数

Node.js Can';t从nodejs导出第二个函数,node.js,express,passport.js,Node.js,Express,Passport.js,我正在使用nodejs、express和passport进行谷歌身份验证。我几乎完成了,但我已经写了一个函数,如果用户没有登录,那么它应该重定向到主页,它不工作。路由器文件中的代码如下所示: var express = require('express'); var passport = require('passport'); var router = express.Router(); var User = require('../models/user.js'); /* GET home

我正在使用nodejs、express和passport进行谷歌身份验证。我几乎完成了,但我已经写了一个函数,如果用户没有登录,那么它应该重定向到主页,它不工作。路由器文件中的代码如下所示:

var express = require('express');
var passport = require('passport');
var router = express.Router();
var User = require('../models/user.js');
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'sprinklrExchange' });
});

router.get('/ask', function(req, res, next) {
  res.render('index2', { title: 'sprinklrExchange' });
});

router.get('/profile', function(req, res, next) {
  res.render('profile.ejs', { user: req.user });
});

router.get('/auth/google', passport.authenticate('google', { scope : ['profile', 'email'] }));

    // the callback after google has authenticated the user
router.get('/auth/google/callback',
        passport.authenticate('google', {
                successRedirect : '/profile',
                failureRedirect : '/'
        }));

router.get('/logout', function(req,res){
    req.logout();
    res.redirect('/');
});

function isLoggedIn(req, res, next) {

    // if user is authenticated in the session, carry on
    if (req.isAuthenticated()){
        return next();
    }

    // console.log("hello world");
    // if they aren't redirect them to the home page
    res.redirect('/');
}

module.exports = router;
每当我在不登录的情况下重定向到
localhost:3000/profile
时,它会显示以下内容(而不是将我重定向到主页):

profile.ejs:

<!doctype html>
<html>
<head>
    <title>Node Authentication</title>
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css">
    <style>
        body        { padding-top:80px; word-wrap:break-word; }
    </style>
</head>
<body>
<div class="container">

    <div class="page-header text-center">
        <h1><span class="fa fa-anchor"></span> Profile Page</h1>
        <a href="/logout" class="btn btn-default btn-sm">Logout</a>
    </div>

    <div class="row">

        <!-- GOOGLE INFORMATION -->
        <div class="col-sm-6">
            <div class="well">
                <h3 class="text-danger"><span class="fa fa-google-plus"></span> Google</h3>

                    <p>
                        <strong>id</strong>: <%= user.google.id %><br>
                        <strong>token</strong>: <%= user.google.token %><br>
                        <strong>email</strong>: <%= user.google.email %><br>
                        <strong>name</strong>: <%= user.google.name %>
                    </p>

            </div>
        </div>

    </div>

</div>
</body>
</html>

节点身份验证
正文{padding top:80px;换行符:break word;}
个人资料页
谷歌

id
令牌
电子邮件
名称


提前感谢。

您出现问题的原因是:
当您在未登录的情况下访问
localhost:3000/profile
时,
req.user
未定义,因此您无法执行
user.google.id

请提供文件
profile.ejs
@BlackMamba的内容。您似乎没有使用
isLoggedIn()
任何地方都可以使用。@mscdex我不知道如何使用它。我是node的新手。我如何使用它?