账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    node zlib使用gzip报Error: write after end
    35
    0

    http请求静态文件返回使用gzip压缩时候报错,不开启gzip使用注释部分则正常

    关键代码片段:

    const gzip = require('zlib').createGzip();
    
    res.statusCode = 200;
    res.setHeader('Content-Type', type);
    res.setHeader('Content-Encoding', 'gzip');
    
    // fs.readFile(pathname, (err, data) => {
    //   res.end(data);
    // })
    
    fs.createReadStream(pathname).pipe(gzip).pipe(res); //关键语句

    报错:

    Error: write after end
        at writeAfterEnd (_stream_writable.js:195:12)
        at Gzip.Writable.write (_stream_writable.js:242:5)
        at ReadStream.ondata (_stream_readable.js:555:20)
        at emitOne (events.js:96:13)
        at ReadStream.emit (events.js:188:7)
        at readableAddChunk (_stream_readable.js:176:18)
        at ReadStream.Readable.push (_stream_readable.js:134:10)
        at onread (fs.js:2026:12)
        at FSReqWrap.wrapper [as oncomplete] (fs.js:683:17)

    较小的html文件能正确返回,比较大css和js却返回不了,请问下我这是哪里写错了或是少了什么吗?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部