Node.js 需要在响应标头中添加一个标头,其键和值为;内容编码“;作为「;gzip“;
我正在尝试使用自定义头运行示例应用程序,但当我尝试运行此应用程序时,它会将错误作为“内容编码错误”抛出。我想在我的应用程序中添加这个自定义头来使用grunt gzip压缩。有人能告诉我为什么会出现这个错误以及如何解决它吗 var express=需要(“express”); var-app=express()Node.js 需要在响应标头中添加一个标头,其键和值为;内容编码“;作为「;gzip“;,node.js,gruntjs,gzip,content-encoding,Node.js,Gruntjs,Gzip,Content Encoding,我正在尝试使用自定义头运行示例应用程序,但当我尝试运行此应用程序时,它会将错误作为“内容编码错误”抛出。我想在我的应用程序中添加这个自定义头来使用grunt gzip压缩。有人能告诉我为什么会出现这个错误以及如何解决它吗 var express=需要(“express”); var-app=express() 响应头只会告诉您的客户端预期的响应类型。要实际压缩它,需要告诉Express这样做。假设您使用的是Express 4+,则需要单独安装该软件包: npm安装压缩--保存 在代码中: var
响应头只会告诉您的客户端预期的响应类型。要实际压缩它,需要告诉Express这样做。假设您使用的是Express 4+,则需要单独安装该软件包: npm安装压缩--保存 在代码中: var压缩=要求(“压缩”) 在app.get()之前,写入: app.use(compress())
Express现在将压缩所有响应 代码的问题在于,您试图发送纯文本,并告诉浏览器预期gzip内容 以下代码将有助于使用gzip编码启动:
var zlib = require('zlib');
app.get('/', function(req, res){
res.setHeader('Content-Encoding', 'gzip')
res.setHeader('Content-Type', 'text/plain')
var text = "Hello World!";
var buf = new Buffer(text, 'utf-8');
zlib.gzip(buf, function(_, result) {
res.send(result);
});
});
app.listen(3001)
您正确地设置了
Content Encoding:gzip
标题,但也没有正确地提供gzip内容(即,hello world
不是gzip算法的有效输出)。这不是一个答案,因为我不知道如何解决它(虽然搜索会给出一些有希望的结果)可能的重复,但我不是100%确定可能的重复必须尝试搜索之前,希望这里是答案Yw,很高兴我可以帮助。但如果你预压缩文件(例如,与网页包)。我遇到了同样的问题,如果我将内容编码头设置为gzip,express不喜欢它。我需要更多信息。这将在节点12后炸毁internet explorer 11。需要压缩才能使用gzip,而不是用它来压缩。
var zlib = require('zlib');
app.get('/', function(req, res){
res.setHeader('Content-Encoding', 'gzip')
res.setHeader('Content-Type', 'text/plain')
var text = "Hello World!";
var buf = new Buffer(text, 'utf-8');
zlib.gzip(buf, function(_, result) {
res.send(result);
});
});
app.listen(3001)