为什么当我在ejs(nodejs)中从不同的页面导航到仪表板时,用户变得未定义



当我从另一个页面导航时,用户变得未定义。

我正在使用会话将用户的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

相关内容

  • 没有找到相关文章

最新更新