Я настраиваю локальный сервер 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/`);
});