DEV Community

Cover image for Node backend port band bo'lib qolishi
Barkamol Valiev
Barkamol Valiev

Posted on

Node backend port band bo'lib qolishi

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
Enter fullscreen mode Exit fullscreen mode

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}`);
  });
});
Enter fullscreen mode Exit fullscreen mode

Key Features

  1. Istalgan portdan boshlaydi: portfinder.basePort ni process.env.PORT yoki boshqa fallback portdan boshlash uchun sozlang.
  2. Ish vaqtidagi xatolardan saqlaydi: Agar istalgan port band bo'lsa, avtomatik ravishda bo'sh portni topadi.

๐Ÿ”ฅ Nima Uchun Bu Muhim

  1. Dasturlash Jarayonini Yaxshilaydi: Portni qo'lda o'zgartirishga vaqt sarflamaysiz.
  2. 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}`);
Enter fullscreen mode Exit fullscreen mode

Top comments (0)