2013-05-06 102 views
0

我的網站上的用戶可以更改他們的密碼。向nodejs路由器中的用戶發送錯誤消息

的問題是,當服務器在此過程中產生的錯誤,我必須設置一條警告消息,說是這樣的:

'Warning, the password couldn't be changed, please try again!' 

我快遞

app.get('/editMode/:user',ensureAuthUser,routes.user.editMode); 
app.get('/editMode/:user/:message',ensureAuthUser,routes.user.editMode); 

提出兩條路線第一個顯示editMode模板
第二個應該顯示editMode和來自服務器的消息

在editMode.js

var warn=null; 
    if(req.params.message) warn=validWarn(req.params.warn) ?JSON.parse(req.params.message) :null; 
    console.log('message value: '+req.params.message); 
    console.log('warn value: '+warn); 

在這兩種情況下,當我重定向到/editMode/+'[email protected]'+/+'warning消息」或 /editMode/+'[email protected] '我得到

console.log(req.params.message)// value: undefined 
console.log(warn)// value: null 

爲什麼我不能發送消息給用戶如果我的db無法更改密碼?

EDIT 2

編輯模式模板edit_template.jade

-if(warning && warning.length) 
        h2 Error: #{warning} 
       -else 
        h2 success 
+0

這看起來很駭人,我想你實際上是在解決一個不同的問題:當發生錯誤時顯示一條警告消息。 'routes.user.editMode'呈現模板嗎?如果是這樣,爲什麼不以這種方式顯示消息? – robertklep 2013-05-06 19:28:49

+0

模板顯示編輯模式...當我更改密碼時,我必須再次重定向到編輯模式...,我該如何顯示消息? – andrescabana86 2013-05-06 19:35:45

回答

1

渲染

return res.render('templates/edit_template, 
          { 
           title: title, 
           usuario: req.session.passport.user, 
           warning: warn || null, 
          }) 

由於您使用的會議上,我將存儲警告在會話:

if (theErrorOccurred) 
{ 
    req.session.warning = 'this is your warning message'; 
} 
else 
{ 
    req.session.warning = null; 
}; 
res.redirect('/editMode/...'); 

並將它傳遞給你的模板routes.user.editMode

return res.render('templates/edit_template', { 
    title : title, 
    usuario : req.session.passport.user, 
    warning : req.session.warning 
}); 

還檢查了connect-flash作爲傳遞各地不同類型的請求之間的消息的更精細的方式。

+0

與其他會話的用戶發生什麼事情 – andrescabana86 2013-05-06 19:56:36

+2

會話僅與一個用戶綁定('req.session'是唯一的且只能由該用戶訪問)。 – robertklep 2013-05-06 19:58:44

+0

thx!我要學習連接閃存 – andrescabana86 2013-05-06 20:01:53