Используйте localtunnel и передайте сгенерированный URL-адрес в команду узла

Я хочу использовать ngrok на порту 4000, и это команда, которая будет экспортировать URL-адрес Forwarding. Каждый раз, когда это запускается, создается новый случайно сгенерированный URL.

Я хотел бы передать этот URL-адрес http://2e1v870f.ngrok.io в переменную node process.env, а не жестко кодировать его каждый раз.

Например в Баше:

ngrok http 4000 | <process/define_something> | FORWARDING={something} node index.js

Кроме того, они находятся в двух запущенных процессах, которые я использовал npm-run-all, чтобы сделать что-то подобное. https://www.npmjs.com/package/npm-run-all

ngrok by @inconshreveable                                                                                                                                            (Ctrl+C to quit)

Session Status                online                                                                                                                                                 
Version                       2.2.8                                                                                                                                                  
Region                        United States (us)                                                                                                                                     
Web Interface                 http://127.0.0.1:4041                                                                                                                                  
Forwarding                    http://2e1v870f.ngrok.io -> localhost:4000                                                                                                             
Forwarding                    https://2e1v870f.ngrok.io -> localhost:4000                                                                                                            

Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                                            
                              0       0       0.00    0.00    0.00    0.00                                                                                                           

person ThomasReggi    schedule 03.08.2017    source источник


Ответы (1)


Я обратился к использованию обертки узла для ngrok, так как не мог получить доступ к выводу из bash. Вот пример start.js:

if (!process.env.ROOT_URL) {
  var ngrok = require('ngrok');
  var shell = require('shelljs');

  ngrok.connect(3000, function(err, url) {
    shell.exec('ROOT_URL=' + url + ' meteor --settings settings.json', function(code, stdout, stderr) {
      console.log('Exit code:', code);
      console.log('Program output:', stdout);
      console.log('Program stderr:', stderr);
    });
  });
}

person wayfarer_boy    schedule 19.01.2018