node.js - 了解异步 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 制作标签,我将不胜感激。这是一个流行的开源项目,它允许人们使用零信任网络保护他们的应用程序。
解决方案
推荐阅读
- java - 多模块Maven项目中的ClassNotFoundException
- javascript - 使用 highchart 导出服务器生成空白图像
- html - 使用修复布局创建 HTML 和 css 视图
- python - 有没有办法使用 python 解析 XML 中的所有子值并返回找到的值的标签名称?
- svg - Threejs - 仅在部分网格中渲染图像纹理的最佳方法
- python - 如何使用 matplotlib.pyplot 增加分组条形图中的条形宽度而不减少组之间的间隙?
- android - 使视图顶部位于其他视图 ConstraintLayout 的末尾之前
- java - 如何将文件列表作为多个请求发送到后端 Android Retrofit
- postgresql - Typeorm Jsonb 列数组计数
- arrays - 如何从具有多个属性的对象数组中删除重复项?