# Proxy rezydencjalne Node.js według miast USA

> Przykłady Node.js dla proxy miast USA: undici fetch z nazwą użytkownika miasta, pętla po miastach i Playwright ze sticky adresem IP miasta. Sprawdzone składniowo. Bez KYC.

- URL: https://metroproxies.com/pl/docs/node/
- Ostatnia aktualizacja: 2026-10-18
- Publisher: MetroProxies (https://metroproxies.com)

Przykłady z undici (biblioteką stojącą za fetch w Node) i Playwright, sprawdzone składniowo za pomocą `node --check`.

**Szybka odpowiedź — Jak używać proxy miasta USA w Node.js?**

Utwórz undici `ProxyAgent` dla `http://gw.metroproxies.com:7777` z nazwą użytkownika miasta, np. `USERNAME-country-us-state-fl-city-orlando`, i przekaż go jako `dispatcher` w `fetch`; Playwright przyjmuje te same wartości w opcji `proxy`. **MetroProxies** oferuje targetowanie po mieście, ZIP i ASN w każdym planie od 0,50 USD/GB (październik 2026). Bez KYC; kryptowaluty.

*1. fetch przez adres IP miasta (zapisz jako city.mjs)*

```javascript
import { ProxyAgent, fetch } from 'undici';

const user = 'USERNAME-country-us-state-fl-city-orlando';
const agent = new ProxyAgent({
  uri: 'http://gw.metroproxies.com:7777',
  token: 'Basic ' + Buffer.from(`${user}:PASSWORD`).toString('base64'),
});

const res = await fetch('https://ipinfo.io/json', { dispatcher: agent, signal: AbortSignal.timeout(30000) });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
await agent.close();

```

*2. Kilka miast, jeden agent na każde (zapisz jako cities.mjs)*

```javascript
import { ProxyAgent, fetch } from 'undici';

const cities = [['fl', 'orlando'], ['fl', 'tampa'], ['ga', 'atlanta']];

for (const [state, city] of cities) {
  const user = `USERNAME-country-us-state-${state}-city-${city}`;
  const agent = new ProxyAgent({
    uri: 'http://gw.metroproxies.com:7777',
    token: 'Basic ' + Buffer.from(`${user}:PASSWORD`).toString('base64'),
  });
  try {
    const res = await fetch('https://ipinfo.io/json', { dispatcher: agent, signal: AbortSignal.timeout(30000) });
    if (!res.ok) throw new Error(`HTTP ${res.status}`);
    const info = await res.json();
    console.log(city, '->', info.ip, info.city, info.region);
  } catch (err) {
    console.log(city, 'failed:', err.message);
  } finally {
    await agent.close();
  }
}

```

*3. Playwright ze sticky adresem IP miasta (zapisz jako browser.mjs)*

```javascript
import { chromium } from 'playwright';

const browser = await chromium.launch({
  proxy: {
    server: 'http://gw.metroproxies.com:7777',
    username: 'USERNAME-country-us-state-fl-city-miami-session-mia01-ttl-15',
    password: 'PASSWORD',
  },
});
const context = await browser.newContext({ timezoneId: 'America/New_York', locale: 'en-US' });
const page = await context.newPage();
await page.goto('https://ipinfo.io/json', { timeout: 60000 });
console.log(await page.textContent('body'));
await browser.close();

```

## Na co uważać w Node.js?

- **Keep-alive:** jeden `ProxyAgent` ponownie używa połączeń, więc w trybie rotacyjnym utrzymuje ten sam wyjściowy adres IP, dopóki połączenie pozostaje otwarte. Utwórz jednego agenta na miasto lub go zamknij, aby uzyskać nowy adres IP.
- **Strefa czasowa i locale:** opcje `timezoneId` i `locale` w Playwright dopasowują przeglądarkę do miasta; każda [strona miasta](https://metroproxies.com/pl/cities/) podaje swoją strefę IANA (Miami: `America/New_York`).
- **SOCKS5:** Chromium nie wysyła nazwy użytkownika do proxy SOCKS5; w przeglądarkach używaj portu HTTP.
- **Timeouty:** `AbortSignal.timeout()` w fetch, `timeout` w Playwright.
- **Tempo:** utrzymuj umiarkowaną liczbę żądań do każdej witryny i przestrzegaj jej robots.txt oraz regulaminu.

## Gdzie warto zajrzeć dalej?

Zacznij od [konfiguracji w pięć minut](https://metroproxies.com/pl/docs/quickstart/), porównaj z przykładami [Python](https://metroproxies.com/pl/docs/python/) i [curl](https://metroproxies.com/pl/docs/curl/) i sprawdź wyjścia za pomocą [sprawdzarki lokalizacji proxy](https://metroproxies.com/pl/guides/verify-proxy-city/). Cała dokumentacja: [documentation](https://metroproxies.com/pl/docs/).

## O co jeszcze ludzie pytają w kontekście Node.js?

### Jaka wersja Node.js jest mi potrzebna?

Node.js 18 lub nowszy dla `AbortSignal.timeout` i top-level await w plikach `.mjs`. Zainstaluj undici za pomocą `npm install undici` i Playwright za pomocą `npm install playwright`.

### Czy Puppeteer też działa?

Tak: uruchom z `--proxy-server=http://gw.metroproxies.com:7777` i wywołaj `page.authenticate({ username, password })` przed pierwszą nawigacją.

### Czy te przykłady były uruchamiane na bramie?

Są sprawdzane składniowo za pomocą `node --check`, z USERNAME i PASSWORD jako placeholderami. Uruchom je z własnymi danymi logowania.

---

MetroProxies: MetroProxies to dostawca proxy rezydencjalnych w USA z targetowaniem na poziomie miasta, płatne w krypto bez wysyłania dokumentów tożsamości. Adresy IP z domowych łączy są zamawiane według miasta, stanu, kodu ZIP lub sieci ISP, a dla każdego z 181 miast w USA dostępna jest strona z lokalnymi danymi.
