Node.js POST 请求响应的异步处理

G.史蒂夫

我相对较新Node.js,我正在创建一个服务器,该服务器将接受POST来自移动应用程序的请求,该应用程序的主体包含凭据,然后将通过GET另一台服务器进行验证如果GET响应验证凭据,则提取 UID 并调用firebase admin SDK以创建自定义令牌。下面是一段代码和两个被调用以(a)验证凭据并(b)生成自定义令牌的函数

//Listen for app to POST Credential
  app.post('/', function(request, response) {
    console.log('Request Body: ',request.body);
    var Credential = request.body;

    //Validate Credential
    validateCredential(Credential)

    //Get Authorization Token
    getToken(userID)

    //Return Token for POST Response
    response.set('Content-Type','Text');
    response.end(firebaseAuthToken);

  });
  //Create listener for POST function
  app.listen(port, function() {
    console.log('AuthServer is running and listening on port '+port);
  });


//Function to Validate Credential 
async function validateCredential(crdntl) {
  //Call Service to validate Credential received
  axios({
  method: 'get',
  url: 'https://.....',
  })
  .then(function(response) {
    ...check credential validation data
  })
  .catch(function (error) {
  console.log('ERROR: Unable to Validate Credential');
  //Unable to create Validate Credential so return error message for POST response
  return ('ERROR1');
  });
}

async function getToken(uid) {
  admin.auth().createCustomToken(uid)
    .then(function(customToken) {
    var AuthToken = customToken;
    var decoded = jwt.decode(AuthToken);
    console.log('Decoded Token: '+'\n',decoded);
    //Return Authorization Token for POST response
    return (AuthToken);
    })
    .catch(function(error) {
    console.log('ERROR: Unable to Create Custom Token', error);
    //Unable to create Token so return error message for POST response
    return ('ERROR2');
    });
  }
}

我需要返回validateCredential函数的结果并将其结果传递给getToken函数并返回其结果,以便可以发送 POST 响应。我知道这些函数是异步的,我可以将它们与回调或承诺链接起来。

真正的问题是如何让 POST 响应等待来自 getToken 函数的回调,因为最终目标是将自定义令牌传递回 POST 响应正文中的移动应用程序。任何帮助,将不胜感激。

梅胡尔·普拉贾帕蒂

你的validateCredentialgetToken函数已经async是返回promise的,要在POST函数中等待这些函数发送响应,你必须创建POST函数async然后await在调用这两个函数时使用关键字,当你使用await函数执行时,等待函数响应被Promise解析,这是示例代码。

//Listen for app to POST Credential
app.post('/', async function(request, response) {
    console.log('Request Body: ',request.body);
    var Credential = request.body;

    //Validate Credential
    var userId = await validateCredential(Credential) //Waits until userId comes

    //Get Authorization Token
    var firebaseAuthToken = await getToken(userID) //waits until Token comes

    //Return Token for POST Response
    response.set('Content-Type','Text');
    response.end(firebaseAuthToken);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js-POST请求的响应未定义

来自分类Dev

Node.JS-使用异步功能处理传入的请求

来自分类Dev

Node.JS-使用异步功能处理传入的请求

来自分类Dev

Express node.js-请求JSON,异步处理

来自分类Dev

解析来自Node js + handlebars的POST请求

来自分类Dev

输入数组的Node.JS POST请求

来自分类Dev

node.js中的POST请求

来自分类Dev

Node.js缺少POST请求的正文

来自分类Dev

解析来自Node js + handlebars的POST请求

来自分类Dev

jQuery + node.js表达POST请求

来自分类Dev

输入数组的Node.JS POST请求

来自分类Dev

在Node.js中模拟POST请求后如何访问响应正文?

来自分类Dev

集会:Node.js中的v2.0 API授权以处理POST请求

来自分类Dev

如何使用Node.js处理不正确的POST请求?

来自分类Dev

集会:Node.js中的v2.0 API授权以处理POST请求

来自分类Dev

Node.js:系统发送两次POST请求

来自分类Dev

使用node.js从POST请求下载文件

来自分类Dev

Node.js发送外部API POST请求

来自分类Dev

使用Express的Node.js:如何重定向POST请求

来自分类Dev

从Node.js中的请求中提取POST参数

来自分类Dev

Node.js:系统发送两次POST请求

来自分类Dev

在 Node.js 中接收来自 Swift 的 POST 请求

来自分类Dev

关于 ajax 向 node.js POST 请求的问题(错误)

来自分类Dev

如何使用 Node.JS 向 Ghostbin 发出 POST 请求?

来自分类Dev

Youtube API在node.js Express中使用异步处理多个相关请求

来自分类Dev

Node.js用异步数据响应

来自分类Dev

Curl正在获得POST响应,但是node.js没有得到POST响应

来自分类Dev

Curl得到POST响应,但是node.js没有得到POST响应

来自分类Dev

node.js非阻塞POST请求以等待另一个POST请求

Related 相关文章

热门标签

归档