我正在尝试在身份验证后在页面上显示用户名。每当我这样做时,页面就会崩溃,因为我在我的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
当我尝试获取本地身份验证数据时,它会抛出此错误(请参阅顶部的视图)。
未定义本地
修改尝试使问题更加清晰。