net :: ERR_EMPTY_RESPONSE&&未捕获(承诺)TypeError:无法获取

时间:2017-10-23 11:25:13

标签: javascript fetch-api

好吧,我的代码运行正常,但是今天我收到代码中显示的行引发的错误:

/**
 * 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
}

我研究过像this这样的类似问题,但是我无法弄清楚为什么会抛出错误,我对代码工作正常并突然出现此错误这一事实感到更加困惑

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

/**
 * 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'
            })
        }
    })

})

1 个答案:

答案 0 :(得分:0)

几个月前我问过这个问题。我记得我终于找到了错误的原因。该错误是由于MariaDB服务器崩溃/失败造成的。

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