const express = require('express'); const morgan = require('morgan'); const { createProxyMiddleware } = require('http-proxy-middleware'); const app = express(); // Configuration const PORT = process.env.PORT || 3001; const API_SERVICE_URL = process.env.VITE_API_PROXY_TARGET; const API_KEY = process.env.VITE_API_KEY; if (!API_SERVICE_URL) { throw new Error('VITE_API_PROXY_TARGET environment variable is not set.'); } if (!API_KEY) { throw new Error('VITE_API_KEY environment variable is not set.'); } // Logging app.use(morgan('dev')); // Proxy middleware app.use('/api', createProxyMiddleware({ target: API_SERVICE_URL, changeOrigin: true, pathRewrite: { '^/api': '', // remove /api prefix when forwarding to the target }, onProxyReq: (proxyReq, req, res) => { // Add the API key to the request header proxyReq.setHeader('X-API-KEY', API_KEY); }, onError: (err, req, res) => { console.error('Proxy error:', err); res.status(500).send('Proxy error'); } })); app.listen(PORT, () => { console.log(`BFF server listening on port ${PORT}`); });