2017-07-21 5 views
0

を発行し、それは私がserver.jsパスデータのJavaScriptファイルからサーバーnodejsする - 私は(firebase & nodejs)と戦ってきたNodejs

にログインした後にデータを渡すことができますどのように、その問題の第四の部分です私は試しました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)'がクライアント上で呼び出されますか? '// Handle error'でエラーが報告されていますか? –

答えて

0

あなたのルートは、応答する必要がある:

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

あなたはthenからPromiseを返さない場合は、Promiseundefinedを返します。そして成功の約束を解決するには、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'を使用していることを確認してください。 – shawon191

+0

とPromiseがコンソール '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*/ 
}); 
関連する問題