node.js - 我的 Node.js 天蓝色函数正在返回大量数据。如何压缩json响应?
问题描述
我有一个 Node.js 天蓝色函数。它返回一个大的 JSON 文件,需要将近一分钟才能返回 UI。如何压缩它以提高应用程序的性能?
解决方案
您应该能够zlib
在发送数据之前使用核心模块压缩数据。确保将Content-Encoding
标头值设置为,gzip
以便客户端相应地解压缩数据。
这样的事情应该做
const { promisify } = require('util');
const zlib = require('zlib');
const gzip = promisify(zlib.gzip);
module.exports = async function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
var res = {
headers: {
'Content-Encoding': 'gzip'
}
};
if (req.query.name || (req.body && req.body.name)) {
// res.status = 200; /* Defaults to 200 */
res.body = await gzip("Hello " + (req.query.name || req.body.name));
}
else {
res.status = 400;
res.body = await gzip("Please pass a name on the query string or in the request body");
}
context.res = res;
}
推荐阅读
- angular - TypeScript 编译中缺少 Module build failed ts。请通过 'files' 或 'include' 属性确保它在您的 tsconfig 中
- angularjs - 向 Web 服务发送错误的 URL
- reactjs - REACTJ + SlimPhP 上的 CORS 错误
- r - 比较 R 中的因子和字符串
- html - CSS内部链接与css文件无关?
- c# - 实体框架代码第一个数据库未与模型同步
- java - 检索 JSON 数据时字符串无法转换为 int 错误
- python - 如何拆分 Pandas DataFrameGroupBy
- selenium - 在 html 中检索当前的 chrome 打开页面而不保存它
- jquery - 使用 jquery 隐藏列表中的所有 li,但不隐藏具有类名“matter”的 li