Files
qna-viewer-react/bff-server.js
2025-08-05 11:28:44 +09:00

42 lines
1.1 KiB
JavaScript

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}`);
});