запустите веб-сервер nodejs и отобразите его главную страницу

#node.js #browser

#node.js #браузер

Вопрос:

Я хотел бы написать node.js скрипт, который запускает веб-сервер и при запуске сервера открывает страницу в браузере по умолчанию. Для выполнения последнего я попробовал пакет npm «open», который работает отлично, за исключением страниц, доставляемых локальным сервером, только что запущенным. Сценарий выглядит примерно так:

 http.createServer(function(request,response){
   ... usual stuff
}).listen(8001);
open('http://www.localhost:8001/index.html');
  

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

Комментарии:

1. Решено. Я удалил «www.» из URL. Последнее утверждение теперь: open (‘ localhost:8001/index.html ‘ );

Ответ №1:

Вызовите open в обратном вызове.

Например

 http.createServer(function(request,response){
   ... usual stuff
}).listen(8001,function(){
   open('http://localhost:8001/index.html');
});
  

Ответ №2:

это потому, что узел асинхронный ! функция open вызывается до того, как она получит обратный вызов от функции listen ! поэтому всегда делайте что-то после обратного вызова! это не похоже на процедурное программирование ! поэтому используйте : http.createServer(function(request,response){
... usual stuff
}).listen(8001,function(){
open('http://www.localhost:8001/index.html');
});