我正在构建一个简单的express
应用程序,它存储来自特定服务器的数据,并根据请求将其发送到frontend
。
这是我的代码。index.js
import express from 'express';
import cors from 'cors';
import morgan from 'morgan';
import { routes } from '../routes';
export let cache = {};
const app = express();
app.use(express.urlencoded({ extended: true }));
app.use(express.static('public'));
app.use(cors());
app.use(express.json());
app.use(morgan('tiny'));
app.use('/', routes);
app.disable('x-powered-by');
app.listen(port, () => {
console.log(`Listening to port ${port}`);
... DOING SOMETHING ...
const result = someFunc();
cache = result;
});
router.js
... ... ...
routes.get(
'/cache',
catchAsync(async (req: Request, res: Response) => {
const query = req.query?.fields || '';
const fields = query ? String(query).split(',') : [];
res.status(200).json(fields.length ? pick(cache, fields) : cache);
}),
);
这在local
上运行良好,但是当我将其部署到Vercel
时,它总是返回{}
。
似乎设置为cache
在Vercel
上不起作用。
我怎样才能实现这一点呢?
1条答案
按热度按时间z18hc3ub1#
推荐的缓存方式是使用Redis这样的内存数据库,你可以从this开始。