برنامه نویسی

سفر یادگیری من با TSI

در این مقاله، من شما را در مسیر ساخت و استقرار یک Node.js CRUD API، خطاهایی که در طول مسیر با آنها مواجه شدم و نحوه حل آنها توضیح خواهم داد. این پروژه در Render میزبانی شد، یک پلتفرم ابری که استقرار و مقیاس‌بندی برنامه‌های کاربردی وب را ساده می‌کند. من مراحل کلیدی، چالش‌ها و راه‌حل‌ها را پوشش می‌دهم تا به شما در اجتناب از دام‌های مشابه کمک کند.

بررسی اجمالی پروژه
هدف این پروژه ساخت یک CRUD ساده (ایجاد، خواندن، به‌روزرسانی، حذف) با استفاده از Node.js و Express بود. API به کاربران اجازه می دهد تا عملیات اساسی را روی یک منبع انجام دهند، مانند افزودن، بازیابی، به روز رسانی و حذف داده ها. برنامه برای دسترسی عمومی در Render مستقر شد.

ویژگی های کلیدی
POST /api/add: افزودن داده های جدید.

GET /api/data: همه داده ها را بازیابی کنید.

PUT /api/data/🆔 داده ها را با شناسه به روز کنید.

DELETE /api/data/🆔 حذف داده ها با شناسه.

مرحله 1: راه اندازی پروژه
من با مقداردهی اولیه یک پروژه Node.js و نصب وابستگی های لازم شروع کردم:

ضربه شدید
کپی کنید
npm init -y
npm اکسپرس کورها را نصب کنید
راه اندازی اولیه سرور
در اینجا ساختار اولیه برنامه آمده است:

جاوا اسکریپت
کپی کنید
const express = require(“express”);
const cors = require(“cors”);
const app = express();
const port = process.env.PORT || 3000;

app.use(cors());
app.use(express.json());

اجازه داده = [];

// POST /api/add
app.post(“/api/add”, (req, res) => {
const newData = req.body;
data.push(newData);
res.json({ message: “Data added”, data: newData });
})؛

// دریافت /api/data
app.get(“/api/data”, (req, res) => {
res.json(داده);
})؛

app.listen(port, () => {
console.log(Server running on port ${port})
})؛
مرحله 2: استقرار برای رندر
پس از آزمایش برنامه به صورت محلی، تصمیم گرفتم آن را در Render مستقر کنم. در اینجا نحوه انجام من این است:

کد را به GitHub فشار داد:

ضربه شدید
کپی کنید
git init
git افزودن .
git commit -m “تعهد اولیه”
git remote add source https://github.com/username/repo-name.git
git push -u اصل اصلی
یک وب سرویس در Render ایجاد کرد:

مخزن GitHub من را به Render متصل کردم.

Build Command را روی npm install قرار دهید.

دستور Start را روی node index.js قرار دهید.

متغیرهای محیطی اضافه شده:

از آنجایی که برنامه از process.env.PORT استفاده می کند، نیازی به افزودن متغیرهای محیطی اضافی نداشتم.

استقرار برنامه:

رندر به طور خودکار برنامه را ساخته و مستقر می کند.

این برنامه در https://tsicrudassignment.onrender.com قابل دسترسی بود.

مرحله 3: خطاها و رفع
در طول فرآیند توسعه و استقرار، با چندین خطا مواجه شدم. در اینجا چگونه آنها را حل کردم:

خطای 1: نمی توان /api/add را دریافت کرد
مشکل:
وقتی سعی کردم در مرورگرم به https://tsicrudassignment.onrender.com/api/add دسترسی پیدا کنم، با این خطا مواجه شدم:

کپی کنید
نمی توان /api/add را دریافت کرد
علت:
مرورگر به طور پیش فرض یک درخواست GET ارسال می کند، اما نقطه پایانی /api/add فقط درخواست های POST را می پذیرد.

راه حل:
من نقطه پایانی را با استفاده از Postman و cURL برای ارسال یک درخواست POST آزمایش کردم:

ضربه شدید
کپی کنید
curl -X POST https://tsicrudassignment.onrender.com/api/add \
-H “Content-Type: application/json” \
-d '{“name”: “John”, “age”: 30}'
این کار کرد و من پاسخ مورد انتظار را دریافت کردم:

json
کپی کنید
{
“پیام”: “داده اضافه شد”،
“داده”: {
“نام”: “جان”،
“سن”: 30
}
}
خطای 2: نمی توان /api/data/2 را قرار داد
مشکل:
وقتی سعی کردم با استفاده از درخواست PUT داده ها را به روز کنم، با این خطا مواجه شدم:

کپی کنید
نمی توان /api/data/2 را قرار داد
علت:
مسیر PUT در برنامه Express من تعریف نشده است.

راه حل:
من مسیر PUT را برای مدیریت به‌روزرسانی‌ها اضافه کردم:

جاوا اسکریپت
کپی کنید
app.put(“/api/data/:id”، (req، res) => {
const id = parseInt(req.params.id);
const updatedData = req.body;
داده ها[id] = به روز رسانی داده ها؛
res.json({ message: “Data updated”, data: updatedData });
})؛
پس از استقرار مجدد، درخواست PUT مطابق انتظار عمل کرد.

خطای 3: نمی توان ماژول 'update/lib/utils' را پیدا کرد
مشکل:
در حین استقرار، گزارش‌های رندر این خطا را نشان دادند:

کپی کنید
خطا: ماژول 'update/lib/utils' پیدا نشد
علت:
ماژول به روز رسانی نصب نشده است یا به اشتباه ارجاع داده شده است.

راه حل:
من package.json خود را بررسی کردم و وابستگی گمشده را نصب کردم:

ضربه شدید
کپی کنید
npm نصب به روز رسانی
من همچنین تأیید کردم که ماژول به درستی در کد من ارجاع شده است.

خطای 4: استقرار با خروج با وضعیت 1 انجام نشد
مشکل:
استقرار با خطا انجام نشد:

کپی کنید
==> با وضعیت 1 خارج شد
علت:
این خطا عمومی است و می تواند به دلایل مختلفی مانند عدم وابستگی یا دستورات شروع نادرست رخ دهد.

راه حل:
گزارش‌های Render را بررسی کردم و متوجه شدم که اسکریپت شروع در package.json نادرست است. من آن را به روز کردم:

json
کپی کنید
“اسکریپت ها”: {
“start”: “node index.js”
}
پس از استقرار مجدد، برنامه با موفقیت شروع شد.

مرحله 4: برنامه نهایی
پس از رفع تمام خطاها، برنامه نهایی مطابق انتظار عمل کرد. این هم کد کامل:

index.js:
جاوا اسکریپت
کپی کنید
const express = require(“express”);
const cors = require(“cors”);
const app = express();
const port = process.env.PORT || 3000;

app.use(cors());
app.use(express.json());

اجازه داده = [];

// POST /api/add
app.post(“/api/add”, (req, res) => {
const newData = req.body;
data.push(newData);
res.json({ message: “Data added”, data: newData });
})؛

// دریافت /api/data
app.get(“/api/data”, (req, res) => {
res.json(داده);
})؛

// PUT /api/data/:id
app.put(“/api/data/:id”، (req، res) => {
const id = parseInt(req.params.id);
const updatedData = req.body;
داده ها[id] = به روز رسانی داده ها؛
res.json({ message: “Data updated”, data: updatedData });
})؛

// DELETE /api/data/:id
app.delete(“/api/data/:id”, (قیمت، پاسخ) => {
const id = parseInt(req.params.id);
data.splice(id, 1);
res.json({ message: “Data deleted” });
})؛

app.listen(port, () => {
console.log(Server running on port ${port})
})؛
نتیجه گیری
ساخت و استقرار Node.js CRUD API یک تجربه یادگیری عالی بود. من با چندین چالش مواجه شدم، اما با تجزیه و تحلیل دقیق خطاها و تست کدهایم، توانستم آنها را برطرف کنم. رندر استقرار ساده است، و من اکنون یک API کاملا کاربردی دارم که در فضای ابری میزبانی شده است.

اگر روی پروژه مشابهی کار می کنید، امیدوارم این مقاله به شما کمک کند تا از مشکلات رایج اجتناب کنید و برنامه خود را با موفقیت اجرا کنید. کد نویسی مبارک! 🚀

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا