Open yuchun33 opened 6 years ago
alert
vs. confirm
app.get('./login', 登入頁面)
app.post('./login', 判斷登入→通過的話轉留言板)
app.get('./login', 註冊頁面)
app.post('./login', 審核註冊→通過的話轉留言板)
app.get('./index', 留言板主頁面)
app.post('./newpost', 新增留言)
app.post('./updatepost', 修改留言)
app.post('./deletepost', 刪除留言)
看過
待確認
待確認
DATE()
wrong
existUser: function(u_email){
//return 加在這裡。 ****錯的,是因為有回傳 promise 才被當成 true,並不是回傳 then 裡面的 true****
return DB.getAndCreateUsersTable().findOne({where: {email: u_email}})
.then(()=>{return true})
.catch(()=>{return false})
}
待確認
點進去過
1.看起來滿 ok 的 2.可以這樣子做沒關係,但你要統一用跟目錄底下的 package.json 絕對也可以,應該只是設定錯誤 6.js 的 require 跟 php 的很不一樣,並不是直接複製貼上,而是看你 export 了哪些東西,所以對,如果你現在位置要用套件,要再 require 一次
loginHandler(req, res)=>{
db.getUserNickname(req, username) //是回傳 promise
//然後才操作這個 promise
.then(result=>{
req.session.nickname = result[0].nickname
}).catch((err)=>{
console.error('cant find this member', err);
})
}
getUserNickname(req, u_email){
//是回傳 promise
return DB.db().query(`SELECT nickname FROM ${tableName} WHERE email=:email`,
{replacements: {email: u_email}, type: Sequelize.QueryTypes.SELECT}
)
/*這邊全部都不要!
.then(result=>{
req.session.nickname = result[0].nickname
}).catch((err)=>{
console.error('cant find this member', err);
})*/
}
promise 的非同步讓操作不斷失敗,卡住非常非常久,會了以後還發現這樣寫更直觀了,有順利從資料庫拿資料後 再(.then)
設定跟改變內容,可以發現好感動。
星期二的第 5 點是錯誤的,並沒有有回傳 true,是回傳一個 promise 所以才被當成 true。
這樣就對了,恭喜學會 Promise XD
11/11 星期日:Express 的作用