2013-05-06 86 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

相关问题