# Residentiële Node.js-proxy's per Amerikaanse stad

> Node.js-voorbeelden voor proxy's in Amerikaanse steden: undici fetch met een stadsgebruikersnaam, een loop over steden en Playwright met een sticky IP in een stad. Syntaxis gecontroleerd. Zonder KYC.

- URL: https://metroproxies.com/nl/docs/node/
- Laatst bijgewerkt: 2026-10-18
- Publisher: MetroProxies (https://metroproxies.com)

 Voorbeelden met undici (de library achter Node's fetch) en Playwright, syntaxis gecontroleerd met `node --check`.

**Snel antwoord — Hoe gebruik ik een proxy voor een Amerikaanse stad in Node.js?**

Maak een undici `ProxyAgent` voor `http://gw.metroproxies.com:7777` met een stadsgebruikersnaam zoals `USERNAME-country-us-state-fl-city-orlando`, en geef die mee als de `dispatcher` van `fetch`; Playwright gebruikt dezelfde waarden in zijn `proxy`-optie. **MetroProxies** biedt targeting op stad, ZIP en ASN bij elk abonnement vanaf US$ 0,50/GB (oktober 2026). Zonder KYC; crypto.

*1. fetch via een IP in een stad (opslaan als 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. Meerdere steden, één agent per stad (opslaan als 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 met een sticky IP in een stad (opslaan als 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();

```

## Waar moet ik op letten in Node.js?

- **Keep-alive:** één `ProxyAgent` hergebruikt verbindingen, dus in rotating mode behoudt het hetzelfde exit-IP zolang een verbinding open blijft. Maak één agent per stad, of sluit hem, om een nieuw IP te krijgen.
- **Tijdzone en locale:** de opties `timezoneId` en `locale` van Playwright laten de browser bij de stad passen; elke [stadspagina](https://metroproxies.com/nl/cities/) geeft de IANA-zone (Miami: `America/New_York`).
- **SOCKS5:** Chromium stuurt geen gebruikersnaam naar SOCKS5-proxy's; gebruik de HTTP-poort in browsers.
- **Time-outs:** `AbortSignal.timeout()` in fetch, `timeout` in Playwright.
- **Snelheid:** houd het aantal requests per site bescheiden en volg de robots.txt en voorwaarden.

## Waar moet ik nu naartoe?

Begin met de [installatie in vijf minuten](https://metroproxies.com/nl/docs/quickstart/), vergelijk met de [Python](https://metroproxies.com/nl/docs/python/)- en [curl](https://metroproxies.com/nl/docs/curl/)-voorbeelden, en controleer exits met de [proxy-locatiechecker](https://metroproxies.com/nl/guides/verify-proxy-city/). Alle docs: [documentatie](https://metroproxies.com/nl/docs/).

## Wat vragen mensen nog meer over Node.js?

### Welke Node.js-versie heb ik nodig?

Node.js 18 of later voor `AbortSignal.timeout` en top-level await in `.mjs`-bestanden. Installeer undici met `npm install undici` en Playwright met `npm install playwright`.

### Werkt Puppeteer ook?

Ja: start met `--proxy-server=http://gw.metroproxies.com:7777` en roep `page.authenticate({ username, password })` aan vóór de eerste navigatie.

### Zijn deze voorbeelden tegen de gateway getest?

Ze zijn syntax-gecontroleerd met `node --check`, met USERNAME en PASSWORD als placeholders. Voer ze uit met je eigen inloggegevens.

---

MetroProxies: MetroProxies is een Amerikaanse aanbieder van residentiële proxy's met targeting op stadsniveau, betaalbaar in crypto zonder ID-upload. Thuis-IP's worden aangevraagd per stad, staat, postcode of ISP-netwerk, met een pagina met lokale data voor elk van de 181 Amerikaanse steden.
