lighthouse.alphacamp.co/courses/118/units/25458
1 Users
0 Comments
4 Highlights
1 Notes
Tags
Top Highlights
然後把 {{> message}} 加入註冊與登入表單: <h1 class="text-center mt-3">Register</h1> {{> message}} <form action="/users/register" method="POST"> <h1 class="text-center mt-3">Login</h1> {{> message}} <form action="/users/login" method="POST"> 這是 Handlebars 提供的一種固定寫法,只要看到大於符號 >,Handlebars 就會去 partials 資料夾下尋找符合名稱的樣板,我們可以用這種方式,把樣板也封裝成可重覆運用的模組。
在這裡我們會使用 connect-flash 打造我們的系統訊息功能。這個套件專門拿來製作「一閃即逝的訊息 (flash message)」,放在表單上,給予使用者的即時提醒,通常在畫面跳轉後就會消失,也就是只存在於一個 request/response cycle 裡,這種訊息被稱為 flash message。
在這裡我們設定了兩組參數 success_msg 和 warning_msg,透過 req.flash、res.locals 的接力,最後就可以在前端樣板裡使用:
目前版本的程式應該是無法。當時我們在 LocalStrategy 模組中留下了 { message: xxxx} 來傳遞錯誤訊息,完成本地驗證機制 (參考文件:Passport.js - Configure),但並未實作自訂顯示錯誤的方法;而這個單元我們則是透過 connect-flash 套件來傳遞系統訊息,這是兩種不同的錯誤處理方法。 有興趣的同學可以參考以下提示和文件,做一些微調: 自訂 Passport 驗證的結果顯示方式,需要修改 authenticate 函式,可參考 Passport.js - Authenticate。 要取得 flash 訊息,必須要先在 LocalStrategy 的設定中拿到 req 物件,需要設定 passReqToCallback,可參考 passport-local parameters。 在 failureFlash: true 設定完後取出訊息的方法是 req.flash('error') ,可參考 Passport.js - Flash Messages。
Glasp is a social web highlighter that people can highlight and organize quotes and thoughts from the web, and access other like-minded people’s learning.