使用Node.js和Express搭建图片缓存服务或应用服务器

使用Node.js和Express生成缩略图:
复制代码
const express = require('express');
const sharp = require('sharp');
const app = express();
const port = 3000;
 
app.get('/thumbnail/:filename', async (req, res) => {
    const filename = req.params.filename;
    const imagePath = `/path/to/images/${filename}`;
    sharp(imagePath)
        .resize(100, 100) // 设置缩略图尺寸
        .toBuffer()
        .then(data => {
            res.type('jpeg'); // 根据需要设置正确的MIME类型
            res.send(data);
        })
        .catch(err => {
            console.error(err);
            res.status(500).send('Error generating thumbnail');
        });
});
 
app.listen(port, () => {
    console.log(`Thumbnail server running at http://localhost:${port}`);
});

配置nginx反向代理

复制代码
location /thumbnail/ {
    proxy_pass http://localhost:3000/; # Node.js应用地址
    proxy_set_header Host $host; # 传递主机头信息到后端服务器
    proxy_set_header X-Real-IP $remote_addr; # 传递客户端IP地址到后端服务器
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递X
}
相关推荐
网络点点滴1 小时前
Node.js使用自己的模块
node.js
xiaoliuliu123451 小时前
nvm-setup安装步骤详解(附Node.js多版本管理与切换教程)
node.js
前端小超人rui2 小时前
【Node.js Express中间件理解及中间件分类和作用】
中间件·node.js·express
前端小超人rui2 小时前
封装Express 自定义中间件
中间件·node.js·express
码界索隆3 小时前
【腾讯位置服务开发者征文大赛】用 AI Agent + MCP 重构“周边去哪儿”决策链路:我的真实踩坑与MVP落地复盘
人工智能·typescript·node.js
Aolith3 小时前
从前端模拟到全栈认证:我的论坛 JWT 实战复盘
node.js·express
Rabbit_QL4 小时前
【前端基础】npm install 是干嘛的(带参数 vs 不带参数)
前端·npm·node.js
阿赛工作室4 小时前
node.js使用AES加密/解密的详细教程
node.js
Rabbit_QL4 小时前
【前端工具链小白篇】前端工具链全景:Node、npm、Vite 各管什么
前端·npm·node.js
身如柳絮随风扬4 小时前
前端基础进阶:Node.js + ES6 + Axios + Vue 全面入门指南
前端·node.js·es6