我在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");
});
答案 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。