我的代碼有什么問題嗎?我用快遞和貓鼬
router.get('/c/:hashtoken', validateEmailToken, catchAsync(async(req,res)=>{
const hashtoken = req.params.hashtoken
const hashtoken2 = createHash('sha256').update(hashtoken).digest('hex')
const realHashTokens = await EmailToken.find({hashtoken2})
if(realHashTokens.length===0){
req.flash('error','Incorrect email verification token or Your account has been activated')
return res.redirect('/')
}
const toDeleteTokenId = []
for(let realHashToken of realHashTokens){
let theUser = await User.findById(realHashToken.user)
theUser.active = true
await theUser.save()
toDeleteTokenId.push(realHashToken._id)
}
for (let theId of toDeleteTokenId){
await EmailToken.findByIdAndDelete(theId)
}
req.flash('success','Success! Your account has been activated')
return res.redirect('/')
}))
該頁面從未回應。它不斷加載,但如果我檢查了資料庫,用戶就會變得活躍
uj5u.com熱心網友回復:
我已經解決了這個問題。此代碼中的 User 模型具有 post mongoose 中間件,在該函式中,即使之后沒有其他 post 中間件,我也會呼叫 next(),因此服務器以長回應進行回應并且頁面不斷加載。
uj5u.com熱心網友回復:
設定錯誤處理程式或包裝在 try/catch 中。還要添加更多除錯陳述句。
router.get('/c/:hashtoken', validateEmailToken, catchAsync(async(req,res)=>{
try {
console.log('request received')
const hashtoken = req.params.hashtoken
const hashtoken2 = createHash('sha256').update(hashtoken).digest('hex')
console.log('finding token')
const realHashTokens = await EmailToken.find({hashtoken2})
if(realHashTokens.length===0){
req.flash('error','Incorrect email verification token or Your account has been activated')
return res.redirect('/')
}
const toDeleteTokenId = []
console.log('finding user')
for(let realHashToken of realHashTokens){
let theUser = await User.findById(realHashToken.user)
theUser.active = true
await theUser.save()
toDeleteTokenId.push(realHashToken._id)
}
console.log('deleting')
for (let theId of toDeleteTokenId){
await EmailToken.findByIdAndDelete(theId)
}
console.log('completed - redirecting')
req.flash('success','Success! Your account has been activated')
return res.redirect('/')
}
catch(e) {
console.error(e)
// res.sendStatus(500)
req.flash('error', e.message)
return res.redirect('/')
}
}))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/369356.html
標籤:javascript 节点.js MongoDB 表达 猫鼬
下一篇:AmazonS3URL出現兩次
