Sunucumda çalışan ve yalnızca 3000 numaralı bağlantı noktasında çalışan bir Node.js / Express.js uygulamam var ve nedenini anlamaya çalışıyorum. İşte bulduklarım:
- Bir bağlantı noktası (
app.listen()
) belirtmeden uygulama çalışır ancak web sayfası yüklenmez. - 3001 (
app.listen(3001)
) numaralı bağlantı noktasında veya kullanımda olmayan herhangi bir bağlantı noktasında uygulama çalışır ancak web sayfası yüklenmez. - 2999 numaralı bağlantı noktasında, bu bağlantı noktasını başka bir şey kullandığı için uygulama bir hata atar.
- 3000 numaralı bağlantı noktasında uygulama çalışır ve web sayfası sorunsuz bir şekilde yüklenir.
Express uygulamalarının varsayılan olarak 3000 numaralı bağlantı noktasını kullandığını biliyorum. Ancak tuhaf bir şekilde, uygulamam yalnızca 3000 ( app.listen(3000)
) numaralı bağlantı noktasında açıkça çalıştırdığımda çalışıyor .
Bunu 220. satırda buldum /usr/bin/express
:
app.set(\'port\', process.env.PORT || 3000);
Hangisi daha önce belirtildiği gibi yapıyor: bağlantı noktasını belirtilene veya hiçbir şey belirtilmezse 3000'e ayarlamak.
Uygulamamın 8080 veya 3001 gibi farklı bir bağlantı noktasında çalışmasını nasıl sağlayabilirim?
Teşekkürler!
Düzenleme: Kod Örneği (Çok Basit Düğüm / Hızlı Uygulama)
var express = require("express");
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
// Only works on 3000 regardless of what I set environment port to or how I set [value] in app.set('port', [value]).
app.listen(3000);
port
gereklidir.listen()
, bu yüzden onsuz gitmeyi denememelisiniz. 2) Uygulamayı çalıştırırken herhangi bir hata alıyor musunuz? Yoksa bir tarayıcıdan erişilemez mi görünüyor? 3) Eğer aynı makinede web sitesine erişmek istiyorsunuzlocalhost:3000
,localhost:3001
vb? Bir istemci ve bir sunucu olmak üzere iki makine kullanıyorsanız, Düğümün istemciden istek almasına izin vermek için sunucudaki güvenlik duvarına istisnalar eklemeniz gerekir.