当我从另一个页面导航时,用户变得未定义。
我正在使用会话将用户的id从登录页面发送到仪表板
req.session.isAuth = true;
req.session.user = user;
const userData = await register.findById({ _id: user._id });
res.render("./donorpanel/donor_dashboard", { user: userData });
userData包含用户的所有数据,如id、用户名等。
<span class="user">
<%= user.id %>
</span>
错误:用户在eval(在ejs模板中(中未定义
我用会话(isAuth(中间件创建了路由
router.get("/donor_dashboard", isAuth.donorAuth, (req, res) => {
res.render("./donorpanel/donor_dashboard");
});
router.get("/donation", isAuth.donorAuth, (req, res) => {
res.render("./donorpanel/donation");
});
用户面板的文件夹结构为1。donor_dashboard,2。捐赠
最初,当用户登录到仪表板时,会完全显示用户的id。
但当用户从捐赠页面导航到仪表板时,用户将变得不可定义。
错误:未定义用户at eval(eval at compile(C:\Users\Digen More\node_modules\ejs\lib\ejs.js:673:12(,:15:26(
您的EJS页面将获得您传递给它的数据。
它不会获取会话中的所有数据。
res.render("./donorpanel/donor_dashboard", { user: userData });
在这里您将userData
传递给donor_dashboard.ejs.
res.render("./donorpanel/donor_dashboard");
您在不同的地方使用相同的EJS文件,但这一次,当您渲染它时,您根本不向它传递任何数据。
如果根本没有数据,则user
将是undefined
。