У меня есть приложение node, которое выполнило запуск (дочерний процесс) и приложение, приложение имеет хост и порт:
var exec = require('child_process').spawn;
var child = exec('start app');
console.log("Child Proc ID " + child.pid)
child.stdout.on('data', function(data) {
console.log('stdout: ' + data);
});
child.stderr.on('data', function(data) {
console.log('stdout: ' + data);
});
child.on('close', function(code) {
console.log('closing code: ' + code);
});
некоторое приложение начнется немедленно, и некоторое приложение займет некоторое время 10-20 секунд, пока не начнет.
Теперь я использую прокси-сервер node http для запуска приложения, и проблема в том, что Im получает сообщение об ошибке, когда приложение хочет запустить приложение до его запуска и запуска. Любая идея как-то я могу решить эту проблему?
proxy.on('error', function (err, req, res) {
res.end('Cannot run app');
});
Btw, я не могу отправить ответ 500 в прокси-ошибке из-за ограничения нашей структуры. Любая другая идея, как я могу отслеживать приложение, возможно, с некоторым таймаутом, чтобы увидеть, как он отправляет ответ 200.
UPDATE - пример моей логики
httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer({});
http.createServer(function (req, res) {
console.log("App proxy new port is: " + 5000)
res.end("Request received on " + 5000);
}).listen(5000);
function proxyRequest(req, res) {
var hostname = req.headers.host.split(":")[0];
proxy.web(req, res, {
target: 'http://' + hostname + ':' + 5000
});
proxy.on('error', function (err, req, res) {
res.end('Cannot run app');
});
}