Siz Node.js serveringizni ishga tushirganingizda, "Port allaqachon ishlatilmoqda" degan xatoni ko'rganmisiz? ๐ Bu juda bezovta qiladi, lekin buni hal qilishning oson yo'li bor!
Ushbu postda men sizga portfiner
paketini ishlatib, bo'sh portni qanday topishni ko'rsataman, shunda serveringiz har doim ishlayveradi.
๐ ๏ธ Muammo: Port nomutanosibligi
Defolt holatda, ko'plab serverlar process.env.PORT yoki fallback sifatida 3000 portini ishlatadi. Ammo agar bu port allaqachon band bo'lsa, ilovangiz ishga tushmaydi. Shuning uchun, keling, biz bo'sh portni dinamik tarzda topamiz.
๐ฐ๏ธ Yechim:portfinder
ishlatish
Install portfinder
Avvalo, portfinder
paketini loyihangizga qo'shing:
npm install portfinder
Server kodni yangilang
portfinderdan quyidagicha foydalanasiz
:
const express = require("express");
const dotenv = require("dotenv");
const portfinder = require("portfinder");
const app = express();
dotenv.config();
// Define a base port to start searching from
portfinder.basePort = process.env.PORT || 3000;
portfinder.getPort((err, port) => {
if (err) {
console.error("Error finding available port:", err);
return;
}
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
});
Key Features
-
Istalgan portdan boshlaydi:
portfinder.basePort
niprocess.env.PORT
yoki boshqa fallback portdan boshlash uchun sozlang. - Ish vaqtidagi xatolardan saqlaydi: Agar istalgan port band bo'lsa, avtomatik ravishda bo'sh portni topadi.
๐ฅ Nima Uchun Bu Muhim
- Dasturlash Jarayonini Yaxshilaydi: Portni qo'lda o'zgartirishga vaqt sarflamaysiz.
- Ishlab Chiqarishda Ishonchlilikni Ta'minlaydi: Agar defolt port mavjud bo'lmasa ham, serveringiz ishga tushadi.
๐ Yakuniy Fikrlar
Port muammolari sizning performance'ingizni to'xtatmasligi kerak! ๐ portfinder
yordamida, sizning Node.js serveringiz har doim ishlash uchun portni topadi.
Keyingi loyihangizda buni sinab ko'ring va qanday ishlashini izohlarda bildiring!
๐ก Pro Tip: Foydalanuvchilarga qaysi port ishlatilayotganini ko'rsatish uchun do'stona console.log
xabarini qo'shing.
console.log(`Server running on: http://localhost:${port}`);
Top comments (0)