如何提高编程发送图像的速度

时间:2018-03-12 19:20:08

标签: node.js file express ejs

我通过express提供图像,并在不存在这些图像时替换通用图像。使用这些图像的HTML是由EJS循环遍历数组并创建img src URL生成的。

这是我的代码的简化版本:

的env

    people = [
        {id: "10937290375", name: "John Smith"},
        {id: "73402394793", name: "Paul Jones"}
    ]

EJS

    <% for(var i=0; i < people.length; i++) { %>

      <li>
        <img src="/image/<%= people[i].id %>" />
        <span><%= people[i].name %></span>
      </li>

    <% } %>

的node.js

    app.get('/image/:id', function(req, res) {
        var filename = `images/${req.params.id}.png`;
        res.sendFile(filename, function(err) {
            if(err) {
                filename = 'blank.png';
                res.sendFile(filename);
            }
        });
    });

问题在于,它非常慢,并且同步(我猜部分是由于http的工作方式),但我怎样才能加快速度呢?

1 个答案:

答案 0 :(得分:0)

为什么不使用第三方提供商作为您的图片回购。

我推荐Cloudinary - 他们有节点js包,非常容易集成。