如何将数据从一个发布请求api发送到node.js中的另一个发布请求api?

时间:2017-10-24 15:39:06

标签: node.js

我在nodejs中创建了两个post api,一个是登录,另一个是dashboard api。我想将登录api中的电子邮件,角色数据发送到仪表板api。任何人都可以给我这个问题的解决方案吗?提前谢谢你的回答。

var express = require("express");
var session = require("express-session");
var bodyParser = require("body-parser");
var app = express();
app.engine('html', require('ejs').renderFile);
app.use(session({
    secret: 'JILLU',
    cookie:{maxAge:60*60*24*1000},
    resave: false,
    saveUninitialized: false
}));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.post('/login',function(req,res,next){
   var  ses = req.session;
    ses.id=req.session.id;
    ses.email=req.body.mailid;
    ses.role=req.body.role;
    console.log(ses.id);
    res.redirect(307,'/dashboard');
});
app.post('/dashboard',function(req,res){
    console.log("dashboard");
    if(ses.email) {
        console.log("email is a live");
        console.log(ses.email);
        console.log(ses.role);
        console.log(ses.id);
        res.write(ses.email);
        res.write(ses.role);
    } else {
        console.log("login first");
        res.render(__dirname+"/mailrequest.html");
    }
});
app.listen(8086,function(){
    console.log("App Started on PORT 8086");
});

1 个答案:

答案 0 :(得分:0)

这应该有效,

// '/login'
   app.post('/login',function(req,res,next){
    var  ses = req.session;
     ses.email=req.body.mailid;
     ses.role=req.body.role;
     console.log(ses.id);
     res.redirect(307,'/dashboard');
    });

    // '/dashboard'
    app.post('/dashboard',function(req,res){
     console.log("dashboard");
     if(req.session.email) {
        console.log("email is a live");
        console.log(req.session.email);
        console.log(req.session.role);
        console.log(req.session.id);
        res.write(req.session.email);
        res.write(req.session.role);
    } else {
        console.log("login first");
     res.render(__dirname+"/mailrequest.html");
    }
});

问题是变量ses是本地的,并且在' / dashboard'中未定义。 route,而session是req(request)对象的对象。

我建议你使用http get request for dashboard而不是post。