سلام خسته نباشید کد زیر به من ارور Error: connect ECONNREFUSED 127.0.0.1:3000 در postman و ارور Cannot set headers after they are sent to the client در nodejs رو میده.میشه بگید این ارور چیه و مشکل از کجاست؟نکته ای که هست اینه که وقتی یه ادیت کوچیک و بی تاثیر در برنامه انجام می دم و سیو می کنم دفعه اول این ارور رو نمی ده اما دفعه های بعدی ارور می ده.
router.post('/login' , async (req , res)=>{
try {
const user = await User.findOne({username : req.body.username})
!user && res.status(500).json('there is not any user')
const hashedpassword = cryptoJS.AES.decrypt(user.password, process.env.pass_key);
const password = hashedpassword.toString()
password !== req.body.password &&
res.status(401).json('password is incorrect')
res.status(200).json(user)
} catch (err) {
res.status(500).json(err)
}
})
سلام دوست عزیز
این ارور زمانی رخ میده که هر request به سمت سرور میره سرور چند تا response بر میگردونه
راه حل این موضوع اینه که شما وقتی داری response بر میگردونی با توجه شرط هایی که گذاشتی از return استفاده کنی تا سراغ response های بعدی نره !
مثالش :
router.post('/login' , async (req , res)=>{
try {
const user = await User.findOne({username : req.body.username})
if (!user) return res.status(500).json('there is not any user')
const hashedpassword = cryptoJS.AES.decrypt(user.password, process.env.pass_key);
const password = hashedpassword.toString()
if (password !== req.body.password)
return res.status(401).json('password is incorrect')
res.status(200).json(user)
} catch (err) {
res.status(500).json(err)
}
})
سلام این تیکه از کد رو استفاده کن و جایگزین کن
if(password !== req.body.password)
return res.status(401).json('password is incorrect')
ممنون درست شد.
دو سوال دیگه هم داشتم اگر لطف کنید.برنامه ی من به شدت سادست و اولشه ولی من تازه دارم با نود کار می کنم و به مشکل می خورم.
1 -در اسکیما من unique کار نمی کنه اصلا !!
2- از crypto js برای هش کردن استفاده می کنم.چیزی که بهش می دم با چیزی که در اخر بعد از دکریپت کردن بهم می ده با هم فرق داره 😅!!!
سلامی دوباره
const password = hashedpassword.toString(cryptoJS.enc.Utf8)
دلیلشم اینه که وقتی رمز عبور کاربر رو از هش خارج میکنی تبدیل به بایت میکنه و با کد بالا تبدیلش میکنی به استرینگ البته با encoder utf8.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟