برنامه نویسی

اولین API خود را با Node.js بسازید: راهنمای گام به گام

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

⚡ اخیراً مقاله ای در مورد آن نوشتم اولین API خود را بسازید و خواستم آن را با همه شما به اشتراک بگذارم. می توانید مقاله را در وب سایت من پیدا کنید https://codexam.vercel.app/docs/node/node1 [Better View]

⚡ من همچنین یک مخزن در GitHub دارم که در آن می توانید تمام کدها و پروژه های مرتبط با این موضوع را پیدا کنید. می توانید مخزن را در https://github.com/Subham-Maity/node-js-full-stack-tutorial بیابید

❗ برای نگاهی عمیق تر به این موضوع، از جمله فهرست مطالب مفصل، آموزش کامل را در GitHub Repo من بررسی کنید.

اگر می‌خواهید از آخرین پروژه‌ها و مقالات من به‌روز باشید، می‌توانید من را دنبال کنید:

  1. ما قبلاً می دانیم که چگونه یک سرور ساده بسازیم. می توانید آن را در فصل قبل بررسی کنید
 const http = require('http');

 http.createServer((req, res) => {



   }
 ).listen(5000);
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. اکنون res.writeHead(200, {'Content-Type': 'application/json'}); – این خط کد وضعیت پاسخ و هدرها را با استفاده از writeHead روش از res (پاسخ) شیء
  • writeHead متد دو آرگومان می گیرد، اولی کد وضعیت و دومی یک شی حاوی هدرهای پاسخ است (در این مورد، ما در حال تنظیم Content-Type سربرگ به application/json)

  • این writeHead روش برای ارسال کد وضعیت پاسخ و هدرها به مشتری استفاده می شود

  • کد وضعیت 200 یک کد وضعیت استاندارد HTTP است که نشان می دهد درخواست موفقیت آمیز بوده است.

  • این Content-Type هدر برای تعیین نوع رسانه منبع ارسال شده در بدنه پاسخ استفاده می شود، به این معنی که مشتری می تواند انتظار دریافت داده ها را در قالب خاصی داشته باشد.

  • application/json، نشان می دهد که بدنه پاسخ حاوی داده هایی با فرمت JSON است و ما استفاده می کنیم / برای تفکیک نوع و نوع فرعی نوع رسانه.

  1. اکنون res.write(JSON.stringify({name: 'Subham', age: 20})); – این خط بدنه پاسخ را با استفاده از عبارت می نویسد write روش از res (پاسخ) شیء
  • این write روش برای ارسال بدنه پاسخ به مشتری استفاده می شود به این معنی که مشتری می تواند انتظار دریافت داده ها را در یک قالب خاص داشته باشد.

  • این JSON.stringify متد برای تبدیل شی جاوا اسکریپت به رشته JSON استفاده می شود

  • در این مورد، یک نمایش JSON از یک شی با ویژگی ها ارسال می کند name و age.

  • این JSON.stringify متد یک آرگومان واحد می گیرد، شیئی که باید به رشته JSON تبدیل شود

  1. اکنون res.end(); – این خط پایان پاسخ را نشان می دهد و با استفاده از آن برای مشتری ارسال می کند end روش از res (پاسخ) شیء.
  • این end این روش برای نشان دادن اینکه تمام سرصفحه ها و بدنه پاسخ ارسال شده اند و سرور باید این پیام را کامل در نظر بگیرد استفاده می شود.

این خطوط کد بخشی از سرور Node.js هستند که پاسخی به درخواست HTTP می فرستند. این writeHead روش برای تنظیم کد وضعیت پاسخ و هدرها استفاده می شود. در این حالت کد وضعیت روی تنظیم می شود 200 برای نشان دادن موفقیت، و Content-Type سربرگ تنظیم شده است application/json برای نشان دادن اینکه پاسخ حاوی داده های JSON خواهد بود. این write روش برای ارسال داده در بدنه پاسخ استفاده می شود. در این مورد، یک نمایش JSON از یک شی با ویژگی ها ارسال می کند name و age. در نهایت، end روش برای علامت دادن پایان پاسخ و ارسال آن به مشتری استفاده می شود.

const http = require('http');

http.createServer((req, res) => {

   res.writeHead(200, {'Content-Type': 'application/json'});
   res.write(JSON.stringify({name: 'Subham', age: 20}));
   res.end();
  }
).listen(5000);
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. اکنون می توانیم این سرور را با استفاده از آن اجرا کنیم nodemon server.js و با استفاده از مرورگر آن را بررسی کنید localhost:5000

  2. حالا می توانیم خروجی را در مرورگر به این صورت ببینیم

{
  "name": "Subham",
  "age": 20
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

همچنین می‌توانید آن را در پستچی که قبلاً در این بخش پروژه در اینجا در مورد آن صحبت کردیم، بررسی کنید

📝 داده ها را با استفاده از data.js جدا کنید

  1. یک فایل جدید ایجاد کنید data.js و این کد را اضافه کنید
 const data ={
     "name":"Rajesh",
     "age": 20,
     "email": "rajesh@dev.com"
 }
 module.exports=data;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • اینجا const data متغیری است که حاوی یک شی با مقداری داده است
    • name یک ویژگی شی است و مقدار آن است Rajesh
    • age یک ویژگی شی است و مقدار آن است 20
    • email یک خاصیت شی است و مقدار آن `
  • module.exports=data برای صادرات متغیر داده استفاده می شود تا بتوان از آن در فایل های دیگر استفاده کرد
  1. اکنون می‌توانیم این داده‌ها را وارد کنید server.js فایل با استفاده از require روش


const data = require('./data');

  1. Now pass the data variable in the write روش از res شی داخل JSON.stringify روشی مثل این


res.write(JSON.stringify(data));

  1. Now we can run this server using nodemon server.js و با استفاده از مرورگر آن را بررسی کنید localhost:5000

  2. حالا می توانیم خروجی را در مرورگر به این صورت ببینیم


{"name":"Rajesh","age":20,"email":"rajesh@dev.com"}

📝 Add more data in the data.js file

  1. Now we can add more data in the data.js فایل اینجوری

`js

const data = [
{
name: “Rajesh”,
age: 20,
address: {
city: “Delhi”,
state: “Delhi”,
country: “India”,
},
hobbies: [“coding”, “reading”, “playing”],
skills: [“html”, “css”, “js”, “nodejs”],
education: {
school: “Delhi Public School”,
college: “Delhi University”,
degree: “B.Tech”,
},
projects: {
project1: “Portfolio”,
project2: “Blog”,
project3: “E-commerce”,
},
social: {
github: “rajesh.github.io”,
linkedin: “rajesh.linkedin.com”,
twitter: “rajesh.twitter.com”,
},
work: {
company: “XYZ”,
position: “Software Engineer”,
experience: “2 years”,
},
achievements: {
achievement1: “Won a hackathon”,
achievement2: “Got a scholarship”,
achievement3: “Got a job”,
},
interests: {
interest1: “Reading”,
interest2: “Playing”,
interest3: “Coding”,
},
languages: {
language1: “English”,
language2: “Hindi”,
language3: “Punjabi”,
},
contact: {
phone: “1234567890”,
email: “rajesh.dev.com”,
},
},
{
name: “Subham”,
age: 20,
address: {
city: “Delhi”,
state: “Delhi”,
country: “India”,
},
hobbies: [“coding”, “reading”, “playing”],
skills: [“html”, “css”, “js”, “nodejs”],
education: {
school: “Delhi Public School”,
college: “Delhi University”,
degree: “B.Tech”,
},
projects: {
project1: “Portfolio”,
project2: “Blog”,
project3: “E-commerce”,
},
social: {
github: “subham.github.io”,
linkedin: “subham.linkedin.com”,
twitter: “subham.twitter.com”,
},
work: {
company: “XYZ”,
position: “Software Engineer”,
experience: “2 years”,
},
achievements: {
achievement1: “Won a hackathon”,
achievement2: “Got a scholarship”,
achievement3: “Got a job”,
},
interests: {
interest1: “Reading”,
interest2: “Playing”,
interest3: “Coding”,
},
languages: {
language1: “English”,
language2: “Hindi”,
language3: “Punjabi”,
},
contact: {
phone: “1234567890”,
email: “subham.dev.com”,
},
},
{
name: “Rahul”,
age: 20,
address: {
city: “Delhi”,
state: “Delhi”,
country: “India”,
},
hobbies: [“coding”, “reading”, “playing”],
skills: [“html”, “css”, “js”, “nodejs”],
education: {
school: “Delhi Public School”,
college: “Delhi University”,
degree: “B.Tech”,
},
projects: {
project1: “Portfolio”,
project2: “Blog”,
project3: “E-commerce”,
},
social: {
github: “rahul.github.io”,
linkedin: “rahul.linkedin.com”,
twitter: “rahul.twitter.com”,
},
work: {
company: “XYZ”,
position: “Software Engineer”,
experience: “2 years”,
},
achievements: {
achievement1: “Won a hackathon”,
achievement2: “Got a scholarship”,
achievement3: “Got a job”,
},
interests: {
interest1: “Reading”,
interest2: “Playing”,
interest3: “Coding”,
},
languages: {
language1: “English”,
language2: “Hindi”,
language3: “Punjabi”,
},
contact: {
phone: “1234567890”,
email: “rahul.dev.com”,
},
},
];

module.exports = data;
`

  1. Now our server will look like this

`js

const http = require(‘http’);
const data = require(‘./data’);

http.createServer((req, res) => {

res.writeHead(200, {‘Content-Type’: ‘application/json’});
res.write(JSON.stringify(data));
res.end();
}
).listen(5000);
`

  1. Now we can run this server using nodemon server.js و با استفاده از مرورگر آن را بررسی کنید localhost:5000

  2. حالا می توانیم خروجی را در مرورگر به این صورت ببینیم


[{"name":"Rajesh","age":20,"address":{"city":"Delhi","state":"Delhi","country":"India"},"hobbies":["coding","reading","playing"],"skills":["html","css","js","nodejs"],"education":{"school":"Delhi Public School","college":"Delhi University","degree":"B.Tech"},"projects":{"project1":"Portfolio","project2":"Blog","project3":"E-commerce"},"social":{"github":"rajesh.github.io","linkedin":"rajesh.linkedin.com","twitter":"rajesh.twitter.com"},"work":{"company":"XYZ","position":"Software Engineer","experience":"2 years"},"achievements":{"achievement1":"Won a hackathon","achievement2":"Got a scholarship","achievement3":"Got a job"},"interests":{"interest1":"Reading","interest2":"Playing","interest3":"Coding"},"languages":{"language1":"English","language2":"Hindi","language3":"Punjabi"},"contact":{"phone":"1234567890","email":"rajesh.dev.com"}},{"name":"Subham","age":20,"address":{"city":"Delhi","state":"Delhi","country":"India"},"hobbies":["coding","reading","playing"],"skills":["html","css","js","nodejs"],"education":{"school":"Delhi Public School","college":"Delhi University","degree":"B.Tech"},"projects":{"project1":"Portfolio","project2":"Blog","project3":"E-commerce"},"social":{"github":"subham.github.io","linkedin":"subham.linkedin.com","twitter":"subham.twitter.com"},"work":{"company":"XYZ","position":"Software Engineer","experience":"2 years"},"achievements":{"achievement1":"Won a hackathon","achievement2":"Got a scholarship","achievement3":"Got a job"},"interests":{"interest1":"Reading","interest2":"Playing","interest3":"Coding"},"languages":{"language1":"English","language2":"Hindi","language3":"Punjabi"},"contact":{"phone":"1234567890","email":"subham.dev.com"}},{"name":"Rahul","age":20,"address":{"city":"Delhi","state":"Delhi","country":"India"},"hobbies":["coding","reading","playing"],"skills":["html","css","js","nodejs"],"education":{"school":"Delhi Public School","college":"Delhi University","degree":"B.Tech"},"projects":{"project1":"Portfolio","project2":"Blog","project3":"E-commerce"},"social":{"github":"rahul.github.io","linkedin":"rahul.linkedin.com","twitter":"rahul.twitter.com"},"work":{"company":"XYZ","position":"Software Engineer","experience":"2 years"},"achievements":{"achievement1":"Won a hackathon","achievement2":"Got a scholarship","achievement3":"Got a job"},"interests":{"interest1":"Reading","interest2":"Playing","interest3":"Coding"},"languages":{"language1":"English","language2":"Hindi","language3":"Punjabi"},"contact":{"phone":"1234567890","email":"rahul.dev.com"}}]

کد وضعیت

اگر به جای 200 ارسال کنم، 404 را بفرستم، در کد وضعیت پستچی نشان داده نمی شود زیرا کدهای وضعیت زیادی وجود دارد. ما بر اساس نیاز خود از آنها استفاده می کنیم.

برخی از کدهای وضعیت عبارتند از:

  • 200 – باشه
  • 201 – ایجاد شد
  • 204 – بدون محتوا
  • 400 – درخواست بد
  • 401 – غیر مجاز
  • 403 – ممنوع
  • 404 پیدا نشد
  • 500 – خطای سرور داخلی
  • 503 خدمات در دسترس نیست

در اینجا می توانید تمام کدهای وضعیت را بررسی کنید

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

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

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

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