如何用nodejs生成一个空图片发到前端?

前端代码:

var img = new Image();
img.onload = function() {
    console.log('done');
};
img.onerror = function() {
    console.log('error'); // 触发的是这里
};
img.src = 'http://localhost: 3000?test.gif';

后端代码:

const express = require('express');
const app = express();

app.get('/grabber.gif', (req, res) => {
    res.type('gif');
    res.send(new Buffer(1));
});

const server = app.listen(3000, () => {
    console.log(`listen at http://localhost:${3000}`);
});

这是什么原因?消息头的原因吗?

阅读 5.1k
1 个回答

因为空 GIF 并不是 new Buffer(1) 啊,它有自己的二进制结构内容。

题主还不如自己准备一张空 GIF 图放在目录下,在程序初始化的时候把 Buffer 读进来。真想自己构造一张 GIF 图的话,可以参考这里自行构建一个对应的 Buffer,我当年做项目修改 GIF 图片的时候就是参考了这篇结构解析。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题