php - NodeJS 相当于 PHP 的 gzuncompress
问题描述
我正在尝试在 NodeJS中复制这个(PHP)
到目前为止,这就是我所拥有的:
import { query } from "../../lib/db.ts";
const zlib = require("zlib");
const pack = require("locutus/php/misc/pack");
async function getGuildEmblem(i) {
const emblemBlob = await query(`
SELECT emblem_data as emblemData, name FROM guild
WHERE guild_id = ${i}
`);
const emblemData = emblemBlob[0].emblemData;
const imgBuff = pack("H*", emblemData);
const imgB64 = zlib.inflateSync(imgBuff);
return imgB64;
}
export default async (req, res) => {
const {
query: { i },
} = req;
if (i) {
const emblemB64 = await getGuildEmblem(i);
res.status(200).send(emblemB64);
} else {
res.status(400).json({ err: "param" });
}
};
到目前为止,这是我所知道(和完成)的:
- 使用来自locutus的pack,因为输出与 PHP 的 @gzuncompress( pack('H*', $res->emblem_data) );相同 试过跑步
<?php
$res = "D5";
$data = pack('H*', $res);
echo utf8_encode($data);
并且输出是 Õ 这与此处 locutus 的示例完全相同
- 使用zlib作为@gzuncompress 等效项,基于此答案
问题:
Error: incorrect header check
当我尝试使用 zlib.inflateSync 进行 gzuncompress 时得到了
预期结果:
- 编码图像的 Base64 字符串。
额外的:
- 来自数据库查询的文件:Google Drive
解决方案
推荐阅读
- python - 如何为每个试图抓取的 url 捕获 response.code?
- c++ - 开发 c++ 源文件未编译
- python - 在 jupyter notebook 中使用 joblib 时不显示打印输出
- c# - 加载任何表单时运行事件
- wso2 - 如何在 WSO2 APIM 中为外部/第三方 API 处理外部身份验证
- machine-learning - 如何在拟合线性回归模型时调试不一致的输入变量
- python-3.x - 如何导入从 json 文件读取数据的 py 模块?
- c# - 在 ASP.NET 中重复查询时,EFCore 查询限制为 1000
- eclipse - 启用资源过滤后,防止在增量构建后复制所有资源
- ios - How to include CoreMl model into the cocoa pod framework?