اولین 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 من بررسی کنید.
اگر میخواهید از آخرین پروژهها و مقالات من بهروز باشید، میتوانید من را دنبال کنید:
- ما قبلاً می دانیم که چگونه یک سرور ساده بسازیم. می توانید آن را در فصل قبل بررسی کنید
const http = require('http');
http.createServer((req, res) => {
}
).listen(5000);
- اکنون
res.writeHead(200, {'Content-Type': 'application/json'});– این خط کد وضعیت پاسخ و هدرها را با استفاده ازwriteHeadروش ازres(پاسخ) شیء
writeHeadمتد دو آرگومان می گیرد، اولی کد وضعیت و دومی یک شی حاوی هدرهای پاسخ است (در این مورد، ما در حال تنظیمContent-Typeسربرگ بهapplication/json)این
writeHeadروش برای ارسال کد وضعیت پاسخ و هدرها به مشتری استفاده می شودکد وضعیت
200یک کد وضعیت استاندارد HTTP است که نشان می دهد درخواست موفقیت آمیز بوده است.این
Content-Typeهدر برای تعیین نوع رسانه منبع ارسال شده در بدنه پاسخ استفاده می شود، به این معنی که مشتری می تواند انتظار دریافت داده ها را در قالب خاصی داشته باشد.
application/json، نشان می دهد که بدنه پاسخ حاوی داده هایی با فرمت JSON است و ما استفاده می کنیم/برای تفکیک نوع و نوع فرعی نوع رسانه.
- اکنون
res.write(JSON.stringify({name: 'Subham', age: 20}));– این خط بدنه پاسخ را با استفاده از عبارت می نویسدwriteروش ازres(پاسخ) شیء
این
writeروش برای ارسال بدنه پاسخ به مشتری استفاده می شود به این معنی که مشتری می تواند انتظار دریافت داده ها را در یک قالب خاص داشته باشد.این
JSON.stringifyمتد برای تبدیل شی جاوا اسکریپت به رشته JSON استفاده می شوددر این مورد، یک نمایش JSON از یک شی با ویژگی ها ارسال می کند
nameوage.این
JSON.stringifyمتد یک آرگومان واحد می گیرد، شیئی که باید به رشته JSON تبدیل شود
- اکنون
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);
-
اکنون می توانیم این سرور را با استفاده از آن اجرا کنیم
nodemon server.jsو با استفاده از مرورگر آن را بررسی کنیدlocalhost:5000 -
حالا می توانیم خروجی را در مرورگر به این صورت ببینیم
{
"name": "Subham",
"age": 20
}
همچنین میتوانید آن را در پستچی که قبلاً در این بخش پروژه در اینجا در مورد آن صحبت کردیم، بررسی کنید
📝 داده ها را با استفاده از data.js جدا کنید
- یک فایل جدید ایجاد کنید
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برای صادرات متغیر داده استفاده می شود تا بتوان از آن در فایل های دیگر استفاده کرد
- اکنون میتوانیم این دادهها را وارد کنید
server.jsفایل با استفاده ازrequireروش
const data = require('./data');
- Now pass the data variable in the
writeروش ازresشی داخلJSON.stringifyروشی مثل این
res.write(JSON.stringify(data));
-
Now we can run this server using
nodemon server.jsو با استفاده از مرورگر آن را بررسی کنیدlocalhost:5000 -
حالا می توانیم خروجی را در مرورگر به این صورت ببینیم
{"name":"Rajesh","age":20,"email":"rajesh@dev.com"}
📝 Add more data in the data.js file
- 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;
`
- 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);
`
-
Now we can run this server using
nodemon server.jsو با استفاده از مرورگر آن را بررسی کنیدlocalhost:5000 -
حالا می توانیم خروجی را در مرورگر به این صورت ببینیم
[{"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 خدمات در دسترس نیست
در اینجا می توانید تمام کدهای وضعیت را بررسی کنید



