نحوه ایجاد API RESTful Node.js با استفاده از Express.js در Ubuntu 16.04 LTS

در این آموزش می آموزید که چگونه یک API کامل RESTful را تنظیم کنید ، که با استفاده از Node.js و Express در حالی که پروکسی معکوس آن را با NGINX انجام دهید ، در Ubuntu 16.04 LTS به درخواست HTTP خدمت می کنید. ما از برنامه ای به نام Postman استفاده خواهیم کرد، یک ابزار توسعه API بسیار شناخته شده ، برای تست API ما و اطمینان از عملکرد کاملاً کاربردی و مناسب آن است. Node.js یک چارچوب سریع و متقاطع جاوا اسکریپت است که مبتنی بر موتور V8 Chrome است. این نرم افزار در برنامه های دسک تاپ و سرور استفاده می شود و به دلیل کار با حلقه یک رویداد یک رویداد مشهور است. ما از Node.js به عنوان پس زمینه API RESTful ، همراه با Express.js ، چارچوب برنامه وب استفاده شده برای Node.js. استفاده خواهیم کرد. Express.js به صورت نرم افزاری آزاد و آزاد منتشر می شود. Express سمت سرور است که به زبان جاوا اسکریپت نوشته شده است و برای ساختن API طراحی شده است که این امر باعث می شود این پروژه برای ما مناسب باشد. از طرف دیگر ، Postman یک مشتری HTTP بسیار قدرتمند است که دارای توسعه API در ذهن است. این برنامه شامل تمام ابزارهایی است که احتمالاً می خواهید برای توسعه API بخواهید.

نصب پستچی

ابتدا می خواهید به وب سایت Postman بروید و Postman را برای رایانه اصلی خود (نه سرور خود) بارگیری و نصب کنید. تمام دستورالعمل های نصب در وب سایت آنها قرار خواهد گرفت.

نصب Node.js

برای شروع ، ابتدا باید Node.js را نصب کنیم تا بتوانیم توسعه API خود را شروع کنیم. ما Node.js را از وب سایت رسمی بارگیری و نصب خواهیم کرد.

 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
 sudo apt-get install -y nodejs

علاوه بر این ، شما همچنین می خواهید ابزار لازم را بسازید که در تهیه ماژول ها مفید خواهد بود.

sudo apt-get install build-essential

برای این آموزش از نسخه LTS Node.js استفاده خواهیم کرد که نسخه 8.9.3 است.

اولیه سازی پروژه Node.js ما

ما باید یک پروژه جدید Node.js را که شامل یک برنامه کاربردی است ، اولیه کنیم. برای انجام این کار ، یک فهرست جدید ایجاد کنید.

 mkdir expressapi 

تغییر به فهرست جدید. پس از داخل کردن ، npm initتمام گزینه های مورد نیاز را اجرا و تکمیل کنید. به "نقطه ورود" برنامه خود توجه داشته باشید: بعداً این پرونده را ایجاد خواهید کرد. پس از اتمام ، package.jsonفایلی را در فهرست اصلی خود مشاهده خواهید کرد . این به عنوان توضیحی از پروژه ما عمل می کند و کلیه وابستگی های لازم برای عملکرد را لیست می کند.

تنظیم Express.js

اکنون Express.js و وابستگی های آن را پیکربندی خواهیم کرد.

npm install express

مراحل نصب آغاز می شود. چند دقیقه طول خواهد کشید تا همه چیز بارگیری شود.

شروع پرونده اصلی ما

در مرحله بعد ، فایل اصلی اصلی ما را برای API ایجاد خواهیم کرد. در اینجا جایی است که شما از "نقطه ورود" که در package.jsonپرونده دیدید استفاده خواهید کرد. به خاطر این آموزش ، من از طرح نامگذاری پیش فرض استفاده می کنم ، index.js.

touch index.js

سپس آن را در ویرایشگر متن نانو باز کنید.

nano index.js

در پرونده اصلی ما می خواهیم ابتدا با همه بسته های اصلی خود تماس گرفته و مسیرهای خود را ثبت کنیم.

var express = require('express');        
var app = express();                 
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;  
const router = express.Router();
router.get('/', function(req, res) {
    res.json({ message: 'API is Online!' });   
});

app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);

اساساً کاری که ما در اینجا انجام می دهیم ، اولیه سازی برنامه و تنظیم روتر اساسی برای API است. توجه داشته باشید که ما درگاه برنامه خود را تنظیم کرده ایم 8080. ما در پیکربندی API RESTful خود به این شماره احتیاج خواهیم داشت. اکنون ما آماده هستیم تا به پیش برویم و API خود را تست کنیم.

تست API ما با Postman

در فهرست پروژه ، موارد زیر را اجرا کنید.

node <filename>.js

این کار API را شروع می کند ، <filename>همان جایی که پرونده شروع در فایل مشخص شده است package.json. سپس Postman را در رایانه شخصی / Mac خود باز کرده و بر روی Newدکمه "" در گوشه بالا سمت راست کلیک کرده و سپس روی "" کلیک کنید Request. در آنجا ، باید نواری را ببینید که می گوید " GET" در کنار آن. در اینجا URL درخواست ما را وارد خواهیم کرد. به سادگی موارد زیر را در بخش URL درخواست وارد کرده و "" را کلیک کنید Send.

`http://your-server-ip:3000/api` 

خواهید دید " 'API is online'"

مسیرهای API

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

  • /api/numbers - همه شماره ها را از 1-10 نشان می دهد.

  • /api/letters - همه نامه های AZ را نشان می دهد.

اکنون اولین ساختار میان افزار خود را مانند این تنظیم خواهیم کرد.

router.use(function(req, res, next) {
   console.log('We've got something.');
   next() //calls next middleware in the application.
});

router.route('/numbers/:number').get((req, res) => {
     res.json({result: req.params.number + 1})
});

در این مثال شرایطی را تنظیم می کنیم که کاربر می تواند با ارائه فرم کلمه آن ، با استفاده از روش GET ، مبلغ یک عدد + 1 را درخواست کند. ما از این router.route()تابع استفاده می کنیم تا به عنوان شماره ای که می خواهیم به عنوان نتیجه ارسال شود ، استفاده کنیم. پارامترها با " :" در مقابل آنها نامگذاری شده اند. از طریق این پارامتر (ها) دسترسی پیدا می کنیم req.params.

در اینجا مثالی با حروف آورده شده است.

   router.route('/letters/:letter').get((req, res) => {
     res.json({result: req.params.letter.toUpperCase()})
});

ما از همان روشی که در بالا استفاده کردیم استفاده می کنیم ، اما نامه را با عنوان بزرگ ارسال می کنیم.

معرفی NGINX

NGINX یک نرم افزار منبع باز شناخته شده است که برای سرویس دهی به وب ، پروکسی معکوس ، پخش و موارد دیگر استفاده می شود. ما از NGINX برای معکوس کردن پروکسی API استفاده خواهیم کرد ، به ما این امکان را می دهیم که آن را در پورت اجرا کنیم 80، زیرا Node.js امکان دسترسی به درگاه های کمتر از 1024 را بدون دسترسی به root نمی دهد. این می تواند هنگام پیوند دامنه شما به سرور شما مفید باشد.

NGINX را تنظیم کنید

برای شروع نصب NGINX باید موارد زیر را در ترمینال خود اجرا کنید و منتظر بمانید تا نصب تمام شود.

sudo apt-get install nginx

در مرحله بعد ، ما می خواهیم فایل سایت خود را ایجاد کنیم که NGINX برای معکوس کردن پروکسی برنامه ما از آن استفاده می کند.

sudo nano /etc/nginx/sites-available-api.js

پرونده را با موارد زیر جمع کنید ، سپس CTRL+ Oرا ذخیره کنید.

server {
          listen 80;
          location / {
                proxy_set_header X-Real-IP 
                $remote_addr;
                proxy_set_header 
                X-Forwarded-For 
                $proxy_add_x_forwarded_for;
                proxy_set_header Host 
                $http_host;
                proxy_set_header 
                X-NginX-Proxy true; proxy_pass 
                http://127.0.0.1:8080/;
                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_set_header Upgrade 
                $http_upgrade;
                proxy_set_header Connection 
                "upgrade";
                proxy_redirect off;
                proxy_set_header 
               X-Forwarded-Proto $scheme;
       }
}

با استفاده از همان درگاه قبلی که برنامه خود را اجرا کردیم ، به Nginx می گوییم که کلیه درخواست ها از آدرس IP خود را در درگاه 80به API ما که در درگاه اجرا می شود ، هدایت کنیم 8080.

در مرحله بعد ، پروکسی معکوس را با پیوند دادن پرونده جدید ایجاد شده به sites-availableپوشه ، فعال کنید:

sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available

این اطمینان حاصل خواهد کرد که NGINX API ما را از پروکسی معکوس می کند.

ابتدا با NGINX اجرا کنید

پس از پایان تنظیمات NGINX ، NGINX را شروع می کنیم ، سپس API خود را شروع می کنیم. ابتدا NGINX را مجدداً راه اندازی کنید.

sudo systemctl restart nginx

سپس ، به فهرست API خود برگردید و آن را راه اندازی کنید.

node <filename>.js

برنامه در بندر اجرا خواهد شد 80. به سادگی تست را از بالا با پستچی انجام دهید تا اطمینان حاصل شود که همه چیز درست کار می کند.

اجرای API ما

در یک محیط تولید ، می خواهید مطمئن شوید که یک مدیر فرآیند برای برنامه های Node خود دارید ، تا اطمینان حاصل کنید که آنها برای همیشه در پس زمینه در حال اجرا هستند. در این آموزش ، ما از یک مدیر فرآیند به نام PM2 (Process Manager 2) استفاده خواهیم کرد که یک مدیر فرآیند برای برنامه های Node.js است که با حداقل خرابی ، آنها را برای همیشه زنده نگه می دارد. PM2 با بسیاری از ابزارهای مدیریتی مفید ، مانند متوقف کردن ، بارگیری مجدد ، مکث و موارد دیگر وجود دارد. برای نصب PM2 ، موارد زیر را تایپ کرده و منتظر نصب آن باشید.

sudo npm install pm2 -g

پس از نصب ، تمام کاری که باید انجام دهید این است که مطمئن شوید که در فهرست پروژه قرار دارید ، موارد زیر را تایپ کنید و برنامه شروع می شود.

pm2 start <filename>.js

مدیریت برنامه ما با PM2

همانطور که قبلاً ذکر شد PM2 ابزارهای مفیدی دارد که می توانید برای مدیریت بهتر برنامه خود از آنها استفاده کنید.

  • pm2 stop- همانطور که از نام آن پیداست ، این امکان را به شما می دهد تا برنامه در حال اجرا را متوقف کنید و روند آن را بکشید. اگر برنامه شما نتیجه غیر منتظره ای به دنبال دارد ، متوقف کردن آن مفید خواهد بود.

  • pm2 list- عملکرد لیست به شما امکان می دهد همه برنامه های در حال اجرا را از طریق PM2 ، که توسط نام آنها نقشه برداری شده است ، مشاهده کنید. در صورت نیاز به سرعت بررسی زمان به روزرسانی برنامه خود ، باید از این ابزار استفاده کنید.

  • pm2 restart- اگر برنامه شما به دلایلی یخ زد و دوست دارید آن را بارگیری مجدد کنید ، راه اندازی مجدد pm2 همین کار را انجام می دهد. این روند درخواست را از بین می برد و مجدداً آن را تحت یک فرآیند متفاوت آغاز می کند.

  • pm2 monit- ابزار مانیتور داخلی PM2 به شما امکان می دهد نمودارهایی از جزئیات خاص برنامه خود مانند استفاده از CPU / RAM را در یک نمودار کاربرپسند به سبک کاربرانی مشاهده کنید. در صورت تمایل به تصویری از بار برنامه خود ، این مفید است.

اظهارات نهایی

ما اکنون وظیفه خود را برای ایجاد یک API RESTful ، استفاده از Node.js ، Express ، و پراکسی معکوس با NGINX انجام داده ایم. برای گسترش در این آموزش راحت باشید. با API جدید خود می توان��د کارهای بزرگی انجام دهید ، مانند افزودن روش های تأیید اعتبار ، یک بانک اطلاعاتی ، مسیر بهتر و خطای کار و موارد بسیار دیگر. اگر دامنه دارید ، با ضبط "A" که قبلاً در آدرس IP شما تنظیم شده است ، می توانید از دامنه خود به API خود دسترسی پیدا کنید. اگر می خواهید درباره Express.js بیشتر بدانید ، به وب سایت آنها به آدرس http://expressjs.com مراجعه کنید . برای کسب اطلاعات بیشتر در مورد NGINX و پراکسی معکوس ، به http://nginx.com مراجعه کنید . برای مطالعه بیشتر درباره PM2 ، به صفحه آنها در http://pm2.keymetrics.io مراجعه کنید .



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد