我显然没有得到一些核心的Node概念。在从数据库验证用户之后,数据库返回一个对象(“pass_to_html”)。我想将该对象的结果渲染到使用把手的新页面上。快速 - 试图在用户成功登录后重定向
从login_handler.js(服务器JS做验证和推动,并从数据库中提取)我的缩写代码:
function getTheeToDashboard(pass_to_html){
app.post('/dashboard',function(req,res, next){
res.redirect('/dashboard')
res.render('dashboard', {view: dashboard, trainer_name: pass_to_html.trainer_data.trainer});
})
}
从dashboard.js
router.get('/', function(req, res, next) {
res.render('dashboard')
});
从app.js:
app.use('/dashboard', dashboard);
从dashboard.hbs:
<h1> Welcome {{trainer_name}}! </h1>
我没有得到任何错误,但显然app.htmlVerb没有参与。我试过app.get,app.put和app.post。
**编辑:安装connect-flash-plus后,这里是我的修改设置,但仍然没有喜悦。我想应用程序会重定向到dashbaord页面并显示一条消息,但没有任何内容。 **
App.js
var cookieParser = require('cookie-parser');
var session = require('express-session');
var flash = require('connect-flash-plus');
var app = express();
app.use(session({
secret: 'keyboard cat',
cookie: { maxAge: 60000 },
resave: false,
saveUninitialized: false
}));
app.use(flash());
登录处理程序:
function getTheeToDashboard(pass_to_html){
app.get('/flash',function(req,res){
req.flash('info','Flash is back!')
res.redirect('/dashboard')
})
}
dashboard.js:
router.get('/', function(req, res, next) {
res.render('dashboard',{messages: req.flash('info')})
});
为什么您的dashboard.js不匹配您要重定向到的/仪表板上?应该不是: 'router.get('/ dashboard',function(req,res,next){ res.render('dashboard',{messages:req.flash('info')}) });' – claya