Конфигурация прокси Node.js - PullRequest
       24

Конфигурация прокси Node.js

0 голосов
/ 06 сентября 2018

Я настраиваю локальный сервер node.js для работы в разработке UI5, которая также использует службы odata.

Я могу заставить сервер загружать файлы, и пользовательский интерфейс загружается успешно. Однако внутренние вызовы не выполняются, поскольку по умолчанию он разрешает путь к localhost.

Я попытался настроить прокси-сервер для маршрутизации по URL-адресу, предоставленному владельцем системы (работает вставка непосредственно в браузер, поэтому подключение через этот URL-адрес в порядке). Однако я не могу его получить.

URL-адрес по протоколу https.

Это то, что у меня пока есть, есть идеи?

Возможно, это вопрос noob, но я очень новичок в node.js

Спасибо, Матеуш

var http = require('http'),
    httpProxy = require('http-proxy'), 
    odataCall = 'http://localhost:8001/services/cb/web/',
    hostname = '127.0.0.1',
    url = require('url'),
    path = require("path"),
    fs = require("fs");

var options = {
  router: {
    'localhost:8001/services/cb/web/': 'my_url_to_replace_localhost'
  }
};

var proxyServer = httpProxy.createServer(options);
proxyServer.listen(80);

http.createServer(function (req, res) {
  // your code for modifying response is here...

    var uri = url.parse(req.url).pathname;
    var filename = path.join(process.cwd(), uri);

    fs.exists(filename, function(exists) {
          if (!exists) {
            res.writeHead(404, {
              "Content-Type": "text/plain"
            });
            res.write("404 Not Found\n");
            res.end();
            return;
          }

          if (fs.statSync(filename).isDirectory()) filename += '/index.html';

          fs.readFile(filename, "binary", function(err, file) {
            if (err) {
              res.writeHead(500, {
                "Content-Type": "text/plain"
              });
              res.write(err + "\n");
              res.end();
              return;
            }

            res.writeHead(200);
            res.write(file, "binary");
            res.end();
          });
    });

    //proxyServer.proxyRequest(req, res);
}).listen(8001, hostname, () => {
  console.log(`Server running at http://${hostname}:8001/`);
});
...