2017-07-21 59 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*/ 
}); 
相关问题