Express 为图像文件夹提供服务的最佳方式是什么?快速服务器

Express 为图像文件夹提供服务的最佳方式是什么?快速服务器,express,server,multer,Express,Server,Multer,我做了一个网站的管理面板 管理员使用multer将数据和图像上传到服务器 然后我想把这些图像发送到前端。作为静态文件,下载图像而不是显示,所以url不会在html中显示任何内容 我找到了一个解决办法,但我认为这不是正确的。因为它有点慢 信息: 每个图像的大小:2-3 MB PHP中的公共端->每幅图像需要15秒 vue js中的管理端前端->每个图像需要6秒,加载50秒 20张图片 express服务器Ubuntu 16.04.3 x64中的Api 大小 1 vCPU 2GB/25GB磁盘 解决

我做了一个网站的管理面板

管理员使用multer将数据和图像上传到服务器

然后我想把这些图像发送到前端。作为静态文件,下载图像而不是显示,所以url不会在html中显示任何内容

我找到了一个解决办法,但我认为这不是正确的。因为它有点慢

信息:

每个图像的大小:2-3 MB

PHP中的公共端->每幅图像需要15秒

vue js中的管理端前端->每个图像需要6秒,加载50秒 20张图片

express服务器Ubuntu 16.04.3 x64中的Api 大小 1 vCPU 2GB/25GB磁盘

解决方案:

router.get('/photos', async (req,res) => {
    let path = req.query.path;
    path = `../../uploads/${path}`
    if(path){
        fs.readFile(resolve(__dirname, path), function (err, content) {
            if (err) {
                res.writeHead(400, {'Content-type':'text/html'})
                console.log(err);
                res.end("No such image");    
            } else {
                //specify the content type in the response will be an image
                res.writeHead(200,{'Content-type':'image/jpg'});
                res.end(content);
            }
        });
    }
})`

您可以将文件夹作为-

将以下内容添加到express的
app.js
文件中。这里,文件夹
my_images
与项目中的
app.js
位于同一级别

app.use(
  "/photos",
  express.static(path.join(__dirname, "my_images/"))
)

查看。

它有多慢?当提供多大尺寸的图像时,从哪个服务器到哪个客户端,在哪个浏览器中渲染?“你希望它的速度有多快?”下划线编辑。浏览器是Chrome,我尝试过这个,当我转到url浏览器时,自动下载img而不是显示。它是否必须与app.js处于同一级别?您需要从前端向
/photos
发送请求以获取这些图像的内容。您可以使用javascript中的
fetch()。如果您直接从浏览器转到上面的URL,则图像将下载到您的计算机,因为这是您要求它执行的操作。向服务器发送请求并下载响应。