2017-07-21 61 views
0
的NodeJS我

一直爭取與(火力&的NodeJS)的問題,那就是問題的第四部分,我怎麼能登錄後數據傳遞到server.js將數據傳遞給服務器的NodeJS從JavaScript文件 -

我已嘗試this但未能得到它的工作。

基本上我試圖發送用戶idToken到服務器來驗證它。

這是我曾嘗試:

const promise = auth.signInWithEmailAndPassword(email, pass).then(function(){ 
    $('.load-bar').hide(); 
    firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) { 
     // Send token to your backend via HTTPS 
     console.log(data); 
     $http.get('server', {params: {idToken: idToken}}) 
      .success(
       function(success){ 
        console.log('success'); 
       }) 
      .error(
       function(error){ 
        console.log(error) 
       }); 
    }).catch(function(error) { 
     // Handle error 
    }); 
}); 

但它什麼都不做任何錯誤不是成功和server.js

app.get('/server', function(req,res, next){ 
    console.log(req.query.idToken); 
}); 

但仍然一無所獲。我究竟做錯了什麼?

+0

是'的console.log(req.query.idToken);'稱爲服務器上做它輸出的東西嗎?如果不是在客戶端上調用'console.log(data)', '//處理錯誤'是否有錯誤報告? –

回答

0

你的路線需要作出迴應:

app.get('/server', function(req,res, next){ 
    console.log(req.query.idToken); 
    return res.send('success!'); 
}); 
1

如果不從then返回Promise,在Promise將返回undefined。爲了解決成功的承諾,您需要返回Promise.resolve並終止錯誤,您需要返回Promise.reject。試試這個吧 -

const promise = auth.signInWithEmailAndPassword(email, pass).then(function(){ 
    $('.load-bar').hide(); 
    return firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) { 
     // Send token to your backend via HTTPS 
     console.log(data); 
     $http.get('server', {params: {idToken: idToken}}) 
      .success(
       function(success){ 
        return Promise.resolve(success); 
       }) 
      .error(
       function(error){ 
        return Promise.reject(error); 
       }); 
    }).catch(function(error) { 
     return Promise.reject(error); 
    }); 
}); 
+0

錯誤 - 'promise.reject'不是函數 –

+0

@NomanAli確保您使用了'Promise.reject'而不是'promise.reject'。帶有Promise的 – shawon191

+0

在控制檯'ReferenceError:$ http沒有定義'中說# –

0

問題是你沒有把你的迴應發送回api來源。這就是爲什麼你沒有得到成功或錯誤的結果。

變化服務器代碼:

app.get('/server', function(req, res, next){ 
    console.log(req.query.idToken); 
    res.send(200);/*Just sends success code*/ 
    //res.send("Token rcvd");/*Or send some custom message back to call origin*/ 
}); 
相關問題