2014-05-22 28 views
11
ile Node denetçisi

Express 4 Uygulaması ile node-inspector çalıştırmaya çalışıyorum - Bunu bir Vagrant kutusunda çalıştırıyorum, ancak tarayıcıdaki sayfaları herhangi bir sorun olmadan görüntüleyebiliyorum (bağlantı noktalarında ana makine için mevcut vagrant makinesi).Express 4

Uygulamayı ya npm start ya da node --debug bin/www ile başlatıyorum ve daha sonra node-debugger bin/www'u başlatın. Müfettişi tarayıcıya yüklüyorum ve ilk satırdaki ilk kesme noktasını buluyorum, ancak bir kesme noktasını tetikleyecek bir hata ayıklamak için sayfada herhangi bir eylem gerçekleştirme, EADDRINUSE (bağlantı noktası kullanımda) hatasına neden oluyor. Bunun neden olabileceği konusunda biraz şaşkınım, ancak 4 yerine Express 3 üzerinde çalışacak komutları kullanabiliyorum. Ek olarak, hata ayıklayıcısını çalıştırmak için eksik olan bazı yapılandırmalar var. host-makinenin tarayıcısı ama serseri kutusundaki müfettiş çalışıyor mu?

cevap

24

Güncelleme:

düğüm --debug bin/www sonra düğüm-ayıklayıcı bin/www başlatın: Ben bu sorunu olduğunu eminim.

olanların İKİ yapmayın. O ya da diğeri. Aynı şeyi yapmanın 2 yolu vardır. Eski yolu daha basit olarak tercih ediyorum ve düğüm denetçisini kullanıp kullanmadığınızı düğümün kendisi ile birlikte çalışıyorum.

Özetlemek gerekirse: ayıklama modunda VE düğüm-denetçisindeki

  • node-debug bin/www başlar hem uygulama
  • node --debug bin/www hata ayıklama modunda uygulamanızı başlatır aynı süreçte. Bu, ayrı bir işlem olarak node-inspector'u çalıştırdığınız ayrı bir terminal penceresiyle birleştirilmelidir. Bu yaklaşımı tavsiye ederim, ama ya çalışmalı.

İşte bu gidermeyi başlatmak için benim öneri. Her şey koşu almak için komutların basit formunu kullanmayı deneyin:

  • senin serseri konukçu içinde bir SSH oturumu terminalde, bağlantı noktasına bağlamak için çalışacağız node --debug ./bin/www
    • v8 ile ön planda doğrudan uygulamanızı başlatmak 5858. Bu iletiyi "5864 numaralı bağlantı noktasında dinleme hata ayıklayıcısını" görmelisiniz ve "Bu iletiyi" 5858 numaralı bağlantı noktasında açmayı denemeden önce 1000 ms beklemeden "
    • " Bağlantı noktası 5858 numaralı bağlantı noktasında açılamadı "iletisini görüyorsunuz zaten dinleyen başka bir süreç var. nod başlatmak, sizin serseri konukçu içinde ayrı bir SSH oturumu terminalde port kill <pid-you-got-from-netstat>
  • boşaltmak için öldürmek, sonra ne olduğunu anlamak hangi öyle süreç görmek sudo netstat -ntlp çalıştırmak ve neden çalıştığını ve ön planda müfettiş web sunucusu node-inspector. Normal çıkışı gördüğünüzden ve hata görmediğinizden emin olun.
  • Şimdi oraya ve yol boyunca gördüğünüz herhangi beklenmedik hataları gidermek eğer
  • işler gerçekten çalışması gerekir http://localhost:8080/debug?port=5858 gibi bir şey (senin serseri IP/port farklıdır sürece) muhtemelen doğru URL'ye bağlanmak ama eğer Bu EADDRINUSE hata ile ilgili kesin ayrıntıları yayınlamıyorsunuz. Bu, uygulamanızın kendisinde bir istisna mıdır? Öyleyse, şimdi vagrant sunucunuzda başka bir yerde çalışan ekspres uygulamanızın eski bir örneği var ve dolayısıyla uygulamanızın web sunucusu bağlantı noktasına bağlı mı?
+1

Mükemmel yanıt için teşekkür ederiz. Tam olarak haklısın - koşmak da soruna neden oluyordu. Neyse ki bağlantı noktası üzerinde çalışan başka hiçbir şey vardı ne işe yaramazsa daha kolay oldu :) –

+0

sorunu vardı bu satırı $ nodemon --debug app.js çalıştırıyordu bu Bu nodemon ihtiyacım buydu - -brk bin/www. – blackops

+0

Uygulamanız 3000 'http: // localhost: 8080/debug? port = 5858' .. 8080 yerine çalışıyorsa, 3000 numaralı bağlantı noktasını değiştirmelisiniz. –

0

Aynı işlem denetleyici ile çalışır.