将数据从javascript文件传递到nodejs服务器 - Nodejs

时间:2017-07-21 05:04:18

标签: javascript node.js

我一直在讨论(firebase& nodejs)问题,这是该问题的第四部分,如何在登录后传递数据 server.js

我已经尝试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);
});

但仍然没有。我做错了什么?

3 个答案:

答案 0 :(得分:1)

如果您未从class Foo { bar() { barMethod.call(this) } } 返回Promise,则then将返回Promise。要成功解决承诺,您需要返回undefined并以错误终止,您需要返回Promise.resolve。试试这个 -

Promise.reject

答案 1 :(得分:0)

您的路线需要回复:

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

答案 2 :(得分: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*/
});