net::ERR_EMPTY_RESPONSE && Uncaught (in promise) TypeError: Failed to fetch

net::ERR_EMPTY_RESPONSE && Uncaught (in promise) TypeError: Failed to fetch

好吧,我的代码运行良好,但今天我在代码中显示的行收到一个错误:

/**
 * HTTP request to check if email is repeated
 */
checkEmail=()=>{
    /**
     * HTTP request is developed
     */
    let req=new Request('/preview',{
        method:     'POST',
        body:       JSON.stringify(this.data),
        headers:    new Headers({'Content-Type':'application/json'}),
    })
    /**
     * Send HTTP request
     */
    return fetch(req).then(res=>res.json()) // Error is thrown at this line: net::ERR_EMPTY_RESPONSE
}

我研究了类似的问题,但我无法弄清楚为什么会抛出错误,我更困惑的是代码运行正常,突然出现这个错误


在服务器端我有以下代码。我没有修改任何代码,所以不知道为什么会报错

/**
 * Check if email is repeated
 */

emailExists=(email)=>{
    let sql=`SELECT * FROM signups WHERE email='${email}'`
    return new Promise((resolve,reject)=>{
        db.query(sql,(error,result)=>{
            if(error){
                reject(error)
            }else{
                if(result.length>0){
                    /**
                     * Email already exists
                     */
                    resolve(true)
                }else{
                    resolve(false)
                }
            }
        })
    })
}

/**
 * Route for checking email only
 */
server.post('/preview',(req,res)=>{
    /**
     * Email address is needed
     */
    let data={
        email:          req.body['email'],
    }
    /**
     * Check if email is repeated
     */
    emailExists(data.email).then(exists=>{
        if(exists){
            res.json({
                error:{
                    code:'Email is already registered',
                    errno:'Please enter another email address'
                },
                result:null
            })
        }else{
            res.json({
                error:null,
                result:'Email is available'
            })
        }
    })

})

我几个月前问过这个问题。我记得我终于弄清楚了错误的原因。错误是由于 MariaDB 服务器 crash/failure.

因此,我的代码没有任何问题。