2017-04-04 34 views
0

我希望你能幫助我的迴應:ExpressJS不接收在後

我有一個API在我的本地主機是我的前端和我的數據庫之間的橋樑。

我在前端服務器中使用Express。當我提交表單時,數據被放置在數據庫中,我的API按照我的預期發送響應,但是表達不會收到任何內容並且等待狀態(幾分鐘後我的瀏覽器拒絕響應):

下面是使用快遞我的代碼(ClientApi是我自定義的API,在本地主機上運行的實例):

lisaApp.post('/signup', (req, res) => { 
    const validationResult = validateSignupForm(req.body); 
    if (!validationResult.success) { 
    return res.status(400).json({ 
     success: false, 
     message: validationResult.message, 
     errors: validationResult.errors 
    }); 
    } 

    var newClient = req.body 
    newClient.clientemailname = newClient.userclient 
    newClient.client_id = uuid.v4() 

    delete newClient.confirmPassword 

    ClientApi.saveClient(newClient, function (err, usr) { 
    if (err) return res.status(500).send(err.message) 

    console.log('entro') 
    res.redirect('/') 
    }); 

}); 

這裏是我的API,如我所料,返回響應的功能(請參閱設置我帶有Access-Control-Allow-Origin的標頭):

hash.set('POST /', async function saveClient (req, res, params) { 
    let client = await json(req) 

    if (!db.connected) { 
    await db.connect() 
    } 

    let createdClient = await db.saveClient(client) 

    delete createdClient.clientemailname 
    delete createdClient.password 

    await db.disconnect() 
    res.setHeader('Access-Control-Allow-Origin', '*') 
    send(res, 201, createdClient) 
}) 

並通過表單發送數據後,這裏是錯誤,我的瀏覽器顯示 我:

Failed to load resource: net::ERR_EMPTY_RESPONSE 
Uncaught (in promise) TypeError: Cannot read property 'data' of undefined 
    at app.js:18952 

回答

0

hash.set('POST /', async function saveClient (req, res, params)定義,沒有發送方法/函數(這裏> < 參數)呼籲res對象。 如果你已經完全定義發送(< 參數這裏>)方法/功能,請確保它調用res.end(< 參數這裏>)或res.write(< 參數這裏 >),然後是res.end(< 這裏的參數>)。

如果不需要專用的發送(< 參數這裏>)方法/函數,那麼在我看來,你可能需要調用res.end(< 參數這裏>)或res.write(這裏> < 參數),隨後res.end(這裏< 參數>)而不是發送(< 參數這裏>)方法/函數。

+0

好的,你非常幫助我,謝謝。現在我收到了回覆,但無法實現應用重定向到其他鏈接。我正在使用反應(我正在學習現在)。你現在有什麼關於? – maoooricio