首页 > 解决方案 > Express 单一响应解决方法

问题描述

我在这里陷入了两难境地,一旦我的用户登录,我想将他们重定向到仪表板页面,但还将他们的 json 详细信息发送到我的客户端 javascript。我知道只能有一个资源。在响应中发送 /end/json 并且我可以使用视图引擎发送动态数据。我想单独发送数据的原因是因为我不仅要渲染它,而且要在客户端 JS 中使用数据,以便我可以稍后将它用于聊天应用程序中的套接字。我已经尝试了很多东西,包括使用连续的局部变量来尝试创建中间件或自动重定向。问题是无论 res.json() 是什么都很难嵌入到中间件中,因为在它被调用的那一刻,没有声明下一个或重定向的范围。这是我的登录路径的代码:


    router.get(’/’, (req,res)=>{
    console.log(req.user._id);
    
    User.findOne({
    
        "_id": req.user._id
    
    }, function(err, foundUser) {
    
        if (err) {
    
            console.log(err);
    
            return res.status(500).json({
    
                ok: false,
    
                error: err
    
            });
    
        } else {
    
            console.log(foundUser); //THE ELEMENT IS FOUND
    
            return res.status(200).json({
    
                ok: true,
    
                data: foundUser
    
            });
    
        }
    });
    res.sendFile('chat.html', { root: path.join(__dirname, '../views/') });
    });

标签: javascriptnode.jsexpresshttppassport.js

解决方案


您可以从您的页面发出 ajax 请求以获取您想要的数据并将其保存在您的客户端。


推荐阅读