یاد بگیرید. بسازید.

شروع Node.js؛ اولین سرور و تفاوت آن با مرورگر

Node.js چیست؟ ساخت سرور HTTP ساده، تفاوت محیط Node و مرورگر، ماژول‌ها، ورودی نامعتبر و قدم‌های بعدی بک‌اند.

تصویر مفهومی شروع Node.js؛ اولین سرور و تفاوت آن با مرورگر

JavaScript فقط در مرورگر اجرا نمی‌شود

Node.js محیط اجرای JavaScript خارج مرورگر است. در مرورگر به document و عناصر صفحه دسترسی دارید؛ در Node امکاناتی مثل سرور HTTP و فایل‌سیستم وجود دارد. یکسان‌بودن زبان به معنی یکسان‌بودن APIها و مجوزها نیست.

این درس یک پاسخ متنی از سرور می‌سازد. پیش از شروع، Node را از منبع رسمی متناسب با سیستم‌عامل خود نصب کنید و نسخه را بررسی کنید. برای یک پروژه تازه، نسخه پشتیبانی‌شده را انتخاب کنید؛ نسخه‌ای که در یک آموزش قدیمی آمده الزاماً انتخاب مناسب امروز نیست.

یک درخواست و یک پاسخ

server.mjsjavascript
import { createServer } from "node:http";

const server = createServer((request, response) => {
  response.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });
  response.end("سلام از سرور");
});

server.listen(3000, "127.0.0.1");

createServer برای درخواست ورودی یک تابع اجرا می‌کند. پاسخ، کد وضعیت و نوع محتوا دارد و با end پایان می‌یابد. بعد از ذخیره فایل، آن را با node server.mjs در محیط Node اجرا کنید و آدرس محلی را در مرورگر باز کنید. برای توقف، از فرمان قطع اجرای ترمینال استفاده کنید.

ورودی را قبل از استفاده بررسی کنید

وقتی از پاسخ ثابت به فرم و API می‌رسید، ورودی کاربر باید محدود و اعتبارسنجی شود. نوع داده، طول متن، حجم بدنه و مجوز کاربر را در سرور بررسی کنید. اینکه رابط مرورگر یک ورودی را محدود می‌کند، مانع ارسال مستقیم درخواست خراب نیست.

خطا را به پاسخ قابل فهم تبدیل کنید و جزئیات حساس را به کاربر نفرستید. کلید سرویس و رمز پایگاه‌داده باید در محیط سرور بماند. برای اتصال به سرویس بیرونی، زمان انتظار و رفتار تکرار درخواست را مشخص کنید.

قبل از پروژه بزرگ، این مسیر را کامل کنید

  • یک مسیر خواندن داده و یک مسیر ارسال داده بسازید.
  • پاسخ درست، ورودی نامعتبر و خطای سرویس را جدا آزمایش کنید.
  • فرمان شروع، آزمون و ساخت را در پروژه ثبت کنید.
  • پیش از انتشار، تنظیمات محیط و دسترسی شبکه را بررسی کنید.

اگر قرار است فایل کاربر دریافت کنید یا پرداخت داشته باشید، طراحی امنیت و خطا اهمیت بیشتری پیدا می‌کند. یک مثال ساده HTTP نقطه شروع است و نباید به‌عنوان سرور آماده تولید منتشر شود.