我顯然沒有得到一些核心的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