Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重定向时将数据传递到我的ejs视图_Javascript_Node.js_Express_Npm_Ejs - Fatal编程技术网

Javascript 重定向时将数据传递到我的ejs视图

Javascript 重定向时将数据传递到我的ejs视图,javascript,node.js,express,npm,ejs,Javascript,Node.js,Express,Npm,Ejs,当用户重定向到主页时,我试图将数据从登录页发送到主页,以便我可以使用主页ejs文件中的信息 这是我的密码: module.exports = function (app) { app.post('/login', function (req, res) { var data = { "email": req.body.email, "password": req.body.pass

当用户重定向到主页时,我试图将数据从登录页发送到主页,以便我可以使用主页ejs文件中的信息

这是我的密码:


    module.exports = function (app) {

        app.post('/login', function (req, res) {
            var data = {
                "email": req.body.email,
                "password": req.body.password
            }

            functions.callAPI("api link", data, function (error, result) {
                if (error) {
                    var response = {
                        "status": 400,
                        "message": error,
                        "data": null
                    }
                    res.render('login', { response: response });
                } else {
                    var response = result;
                    if (response.status === 400) {
                        res.render('login', { response: response });
                    } else {
                        req.session.token = response.data[0].token;
                        req.session.id = response.data[0].id
                        res.redirect('/home', { response: response }); //this is where i what to pass the data.
                    }
                }
            });


        });

    }


例如,如果对app.get('/home')的回调是res.render('home')

改变
res.redirect('/home',{response:response})

res.render('home',{response:response})

编辑1:

由于您的注释表明get('/home')路线并不是简单地呈现home,请按以下方式执行:

在此模块中,处理app.post('/login'),而不是合并整个路由逻辑,只返回回调,在server.js(或app.js或index.js)中将其命名为loginCallback

并使另一个模块返回app.get('/home')的回调,将其命名为homeCallback,使其接受另一个参数作为响应,默认参数为空对象

现在,此loginCallback将调用homeCallback,并传递第三个参数


这可以达到你的目的

res.render('home',{response:response})将仅呈现主视图,但路由仍然是登录路由而不是主路由。请按以下方式执行:。。。。(无法在评论中使用新行,我将编辑我的答案,只需一分钟)。@codabae我已编辑我的答案。请试一试。如果您仍然不理解,请显示您的入口点js脚本和app.get('/home')js脚本,以便我可以更详细地了解。