اذهب إلى المحتوى

السؤال

نشر

أنا أستخدم المسارات التالية لدي تسجيل دخول وعندما تحدث مشكلة  أرجع 401 ونص الرسالة التي أود عرضها للمستخدمين.

Api: /api/v1/auth/signin.js

export default async (req, res) => {
const { name, password } = req.body;
const url = process.env.SH_API_BASEURL + 'auth/signin';
console.log(url);

try {
    const resp = await axios.patch(url, { name, password });
    return res.status(200).send(resp.data);
} catch (err) {
    const { response } = err;
    const status = response.status;
    const message = response.data.errors[0].message;
    console.log(`status: ${status}, message ${message}`);
    return res.status(status).send(message);
}
};

Pages /pages/auth/signin.js

const handleFormSubmit = async (formData, e) => {
    e.preventDefault();
    try {
        const res = await axios.post('/api/v1/auth/signin', formData);
        

        router.push('/secure/home');
    } catch (err) {
        console.log('pages auth in error');
        console.log(err);
        setSubmitError(true);
        console.log('sigin handle submit error');
        
    }
};

console.log(err) تعرض ه>ا الخطا

Error: Request failed with status code 401
at createError (createError.js:16)
at settle (settle.js:17)
at XMLHttpRequest.handleLoad (xhr.js:62)

كيف يمكنني الوصول إلى statuscode ونص الخطأ في كود الصفحات؟

Recommended Posts

  • 0
نشر

يمكن معرفة رمز الحالة للطلب ونص الخطأ من الغرض response داخل الخطأ err كالتالي

error.response.status // رمز الحالة
error.response.data // جسم الجواب

يصبح المثال كالتالي

const handleFormSubmit = async (formData, e) => {
    e.preventDefault();
    try {
        const res = await axios.post('/api/v1/auth/signin', formData);

        router.push('/secure/home');
    } catch (err) {
      	const code = err.response.status; // الرمز
      	const message = err.response.data; // جسم الطلب ويحوي الرسالة
      
      	if(code === 401) {
          // خطأ في التسجيل
        }
      
      	// خطأ آخر
        
    }
};

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...