Сконфигурируйте express для вызова внешнего API в proxy.conf. json в работе - PullRequest
1 голос
/ 05 апреля 2020

У меня есть два приложения, работающие на heroku, myserverapi (весенняя загрузка) и клиент (приложение Angular). сервер работает на myserver.heroku.com, а клиент myclient.heroku.com в настоящее время мой express сервер обслуживает только stati c файлы. Я новичок в express хочу знать, как заставить его получить доступ к моему файлу proxy.conf. json, где я объявил домен, который он должен вызывать. все нормально работает локально с Cli, но после развертывания не работает.

proxy.Conf. json файл ниже

{
  "/api": {
    "target": "https://mygramapi.herokuapp.com",
    "secure": false,
    "changeOrigin": true
  }
}

И мой express сервер. js

//Install express server
const express = require('express');
const path = require('path');

const app = express();

// Serve only the static files form the dist directory
app.use(express.static(__dirname + '/dist/mygram'));

app.get('/*', function(req,res) {

  res.sendFile(path.join(__dirname +'/src'));
});
console.log(app);
// Start the app by listening on the default Heroku port
app.listen(process.env.PORT || 4000);

Все мои API начинаются с / api, например, / api / login, / api / signup и т. Д., Есть всеобъемлющий способ справиться с этим спасибо.

express -http- у прокси есть решение, но у меня есть несколько вопросов по этому поводу, означает ли это, что я удаляю файл express. js и как насчет моих файлов stati c, я не уверен, что добавлю это в мой существующий код, поэтому я доступ как к файлам stati c, так и к файлам API

const url = require('url');
const proxy = require('express-http-proxy');

// New hostname+path as specified by question:
const apiProxy = proxy('https://myserverapi.heroku.com', {
    forwardPath: req => url.parse(req.baseUrl).path
});

app.use('/api/*', apiProxy);

как заставить их работать

1 Ответ

0 голосов
/ 05 апреля 2020

Добрый день!

Как вы, возможно, знаете, proxy.conf.json можно использовать только для сервера webpack dev - эта конфигурация прокси игнорируется, когда вы собрали пакет prod и просто обслуживаете его через express сервер , Для вашего случая я могу предложить проверить этот пакет npm: https://www.npmjs.com/package/express-http-proxy или попытаться настроить nginx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...