پایگاه داده مکانی اَبری
زیرساخت مکانی پروژه‌های شما، بدون دردسر راه‌اندازی سرور

چطور از Node.js با node-postgres به PostGIS وصل شوم؟

راهنمای گام‌به‌گام آخرین بازبینی: ۱۴۰۵/۰۷/۲۹

پاسخ کوتاه

از بسته pg یک Pool با ssl و حداکثر ۳ اتصال بسازید و کوئری مکانی را پارامتری اجرا کنید. هرگز رمز پایگاه داده را در کد سمت مرورگر نگذارید؛ برای مرورگر لایه منتشرشده یا REST API استفاده کنید.

نمونه

import pg from "pg";

const pool = new pg.Pool({
  connectionString: "postgresql://USER:PASS@HOST:PORT/DB",
  ssl: { rejectUnauthorized: false },
  max: 3,
});

const { rows } = await pool.query(
  `SELECT id, ST_AsGeoJSON(geom)::json AS geometry
   FROM places
   WHERE ST_DWithin(geom::geography, ST_MakePoint($1, $2)::geography, 1000)`,
  [51.389, 35.689]
);

نکته‌ها

  • max: 3 را نگه دارید تا از سقف اتصال همزمان پلن عبور نکنید.
  • مقدارها را همیشه با پارامتر ($1، $2) بدهید، نه با چسباندن رشته، تا از SQL injection در امان بمانید.
  • این کد باید روی سرور شما اجرا شود، نه در مرورگر (چرا؟).
  • برای ترافیک زیاد، PgBouncer را بررسی کنید.

آیا این مقاله به شما کمک کرد؟

چه چیزی کم بود؟ (اختیاری)

هنوز جواب نگرفتید؟ به پشتیبانی بگویید.