在auth之后获取视图中的数据

时间:2016-05-15 12:04:51

标签: javascript node.js passport.js

我正在尝试在身份验证后在页面上显示用户名。每当我这样做时,页面就会崩溃,因为我在我的server.js文件和登录路径文件中都显示了我的路径。

编辑; 例如。登录时,您将进入主题页面。我想将数据从登录传递到该页面,但它似乎并不像我最初想象的那样容易因为passportjs。

此时路由是通过server.js文件和Topic路由文件完成的,但我想更改它以便它使用登录路由文件,以便我可以将登录数据传递给视图。

一个例子是页面上写着'嗨,Joren!'在标题中。

在我的观点中划分

<div>
    <h1>Profile Name</h1>
        <% if (user.local.email && user.local.password){ %>
            <%= user.local.name %>
        <% } %>
        <% if (user.facebook.name && user.facebook.email ){ %>
            <p><%= user.facebook.name %></p>
         <% } %>
</div>

问题是,如果我只使用路线,它就找不到本地。

路线 - passportjs login.js

app.get('/topic', isLoggedIn, function(req, res) {
    res.render('create_topic.ejs', {
        user : req.user
    });
});

function isLoggedIn(req, res, next) {
    if (req.isAuthenticated())
        return next();
    res.redirect('/');
}

server.js

var topics = require('./routes/topic');
app.use('/topic', topics);

主题路线

var express = require('express');
var router = express.Router();
var Topic = require('../models/topicModel.js');

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

    router.get('/id/:id', function(req, res, next) {
        console.log("Sup boi");
        var id = req.params.id;

        Topic.findOne({topicID: id}, function(err, doc){
            res.render('questions.ejs', {docs: doc});
        });
    });

module.exports = router;

当我使用登录路由文件作为主题页面的路由时,单击特定主题时会出现此错误,因为它无法链接到具有特定ID的主题页面。

  

无法获取主题/ id / idnumber

当我尝试获取本地身份验证数据时,它会抛出此错误(请参阅顶部的视图)。

  

未定义本地

修改尝试使问题更加清晰。

0 个答案:

没有答案