首页 > 解决方案 > 了解异步 javascript 方法的参数

问题描述

我正在尝试使用开源项目ziti-sdk-nodejs来保护 Web 应用程序。我有一个使用 express的简单 nodejs 应用程序。此应用程序是部署到Azure App Service的 hello world 演示。我想使用 ziti-nodejs sdk 来保护我的应用程序。

我正在尝试使用此处显示的示例。

有一部分代码需要帮助理解

const zitiHttpRequest = async (url, method, headers) => {
  return new Promise((resolve) => {
    ziti.Ziti_http_request(
      url, 
      method,
      headers,
      (obj) => { // on_req callback
          console.log('on_req callback: req is: %o', obj.req);
          return resolve(obj.req);
      },        
      (obj) => { // on_resp callback
        console.log(`on_resp status: ${obj.code} ${obj.status}`);
        if (obj.code != 200) {
          core.setFailed(`on_resp failure: ${obj.status}`);
          process.exit(-1);
        }
        process.exit(0);
      },
      (obj) => { // on_resp_body callback
        // not expecting any body...
        if (obj.len === UV_EOF) {
          console.log('response complete')
          process.exit(0);
        } else if (obj.len < 0) {
          core.setFailed(`on_resp failure: ${obj.len}`);
          process.exit(-1);
        }

        if (obj.body) {
          let str = Buffer.from(obj.body).toString();
          console.log(`on_resp_body len: ${obj.len}, body: ${str}`);
        } else {
          console.log(`on_resp_body len: ${obj.len}`);
        }
      });
  });
};

我想了解参数(url、方法、标题、(obj)...)的作用。有人可以解释这些论点是什么意思吗?如果有人可以为开放 ziti 制作标签,我将不胜感激。这是一个流行的开源项目,它允许人们使用零信任网络保护他们的应用程序。

标签: node.js

解决方案


推荐阅读