在Angular应用程序代理配置中,我有两个目标端点。对于第一个,我必须配置正常的代理,对于第二个,我不需要配置代理,但仍将其重定向到baseurl。
targetEndPoint:https:// abc / abcapi / v1 / mwa 重定向到:https://apps.ooo.com/api(按预期效果良好)
groupTargetEndpoint:https:// xyz / xyzapi / v1 / uuu 重定向到:https://apps.ooo.com/groups(我希望它是https:// xyz / xyzapi / v1 / uuu / groups)
server.js
----------
// Get dependencies
const express = require('express');
const path = require('path');
const http = require('http');
const bodyParser = require('body-parser');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
// figure out api url.
var targetEndpoint = process.env.URL;
//Check for URL
if (targetEndpoint != undefined && targetEndpoint.length > 0) {
console.log('Found url ' + targetEndpoint);
}
else {
console.error('Could not find URL system var.');
process.exit();
}
var options = {
target: targetEndpoint,
changeOrigin: true,
toProxy: true,
ws: true,
logLevel:"debug",
headers: {cookie: ""}
}
// Get our API routes
var apiProxy = createProxyMiddleware(options);
app.use("/api", apiProxy);
// figure out api endpoint.
var groupTargetEndpoint = process.env.GROUP_URL;
console.log('groupTargetEndpoint ' + groupTargetEndpoint);
var groupapiProxyOptions = {
target: groupTargetEndpoint
}
var groupapiProxy = createProxyMiddleware(groupapiProxyOptions);
app.use("/groups", groupapiProxy);
// Parsers for POST data
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
// Point static path to dist
app.use(express.static(path.join(__dirname, 'app/dist/')));
// Catch all other routes and return the index file
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'app/dist/'));
});
/**
* Get port from environment and store in Express.
*/
const port = process.env.PORT || '4200';
app.set('port', port);
/**
* Create HTTP server.
*/
const server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port, () => console.log(`API running on localhost:${port}`));