需要添加一个 header 作为响应 header,键和值为 "Content-Encoding" 作为 "gzip"
Need to add a header in response header with the key and value as "Content-Encoding" as "gzip"
我正在尝试 运行 具有自定义 header 的示例应用程序,但是当我尝试 运行 此应用程序时,它抛出错误 "Content Encoding Error"。我想在我的应用程序中添加此自定义 header 以使用 grunt-gzip 压缩。谁能告诉我为什么会出现这个错误以及如何解决它?
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.setHeader('Content-Encoding', 'gzip')
res.send('hello world');
});
app.listen(3001)
响应 header 只会告诉您的客户期望什么样的响应。要实际压缩它,您需要告诉 Express 这样做。假设您使用的是 Express 4+,则需要单独安装软件包:
npm 安装压缩 --save
在您的代码中:
var compress = require("compression");
在app.get()之前写:
app.use(压缩());
Express 现在将压缩所有回复。
您的代码存在问题,您正在尝试发送纯文本并告诉浏览器期待 gzipped 内容。
以下代码有助于启动 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)
我正在尝试 运行 具有自定义 header 的示例应用程序,但是当我尝试 运行 此应用程序时,它抛出错误 "Content Encoding Error"。我想在我的应用程序中添加此自定义 header 以使用 grunt-gzip 压缩。谁能告诉我为什么会出现这个错误以及如何解决它?
var express = require('express'); var app = express();
app.get('/', function(req, res){
res.setHeader('Content-Encoding', 'gzip')
res.send('hello world');
});
app.listen(3001)
响应 header 只会告诉您的客户期望什么样的响应。要实际压缩它,您需要告诉 Express 这样做。假设您使用的是 Express 4+,则需要单独安装软件包:
npm 安装压缩 --save
在您的代码中:
var compress = require("compression");
在app.get()之前写: app.use(压缩());
Express 现在将压缩所有回复。
您的代码存在问题,您正在尝试发送纯文本并告诉浏览器期待 gzipped 内容。
以下代码有助于启动 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)