0

私の Web サイトのユーザーはパスワードを変更できます。

問題は、サーバーがプロセスでエラーを生成した場合、警告メッセージを設定して次のように言わなければならないことです。

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

特急で2路線作った

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

1 つ目は、editMode テンプレートを示しています。2
つ目は、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@user.com'+/+'警告メッセージ' または /editMode/+'email@user.com' にリダイレクトすると、

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

データベースがパスワードを変更できない場合、ユーザーにメッセージを送信できないのはなぜですか?

編集2

editMode レンダー

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

テンプレート内 edit_template.jade

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

1 に答える 1

1

セッションを使用しているため、セッションに警告を保存します。

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も確認してください。

于 2013-05-06T19:39:59.073 に答える