با استفاده از Node.js در اوبونتو 16.04 یک برنامه وب Hapi.js ایجاد کنید

Hapi.js یک چارچوب غنی ، قوی و قدرتمند Node.js است که برای ساخت برنامه های وب در اکوسیستم Node.js طراحی شده است. طراحی ساده آن شروع کار را آسان می کند. هاپی از بسیاری از جدیدترین ویژگی های JavaScript ES6 در هسته خود ، مانند وعده های ES6 استفاده می کند. برای کسانی از شما که قبلاً از Express استفاده کرده اند ، Hapi به شما امکان می دهد چیز جدیدی را امتحان کنید ، و همه جدیدترین ویژگی های JavaScript را تجربه کنید.

در این آموزش ، هدف ما ایجاد یک صفحه وب اصلی Hapi.js است که از Vultr VPS ما ، در اوبونتو 16.04 LTS میزبانی می شود. برای کسانی که دامنه سایت خود را دارند ، ما از یک پروکسی معکوس برای پیوند دامنه خود به وب سایت خود استفاده خواهیم کرد. در آخر ، ما یاد خواهیم گرفت که چگونه آن را با یک مدیر فرآیند مدیریت کنیم. حالا که این کار را از دست دادیم ، شروع کنیم.

نصب Node.js

ما نیاز به نصب Node.js. برای انجام این کار در اوبونتو 16.04 LTS ، این دستورالعمل ها را دنبال کنید.

اضافه کردن مخزن

ما باید مخزن NodeSource APT را اضافه کنیم ، که حاوی آخرین نسخه LTS از Node.js.

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

ما در حال بارگیری اسکریپتی هستیم که برای اضافه کردن مخزن به فهرست منابع خود و همچنین نصب Node.js از مخزن NodeSource استفاده خواهیم کرد.

نصب ابزارهای ساخت

علاوه بر نصب خود Node.js ، به نصب ابزارهای ضروری نیز احتیاج خواهیم داشت که به ساخت هر ماژول مورد نیاز برای نصب کمک خواهد کرد.

sudo apt-get install -y build-essential

این به سادگی ابزارهای ساخت را از مخزن بارگیری و نصب می کند.

تنظیم دایرکتوری برنامه

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

mkdir site

پس از ساختن پوشه ، اکنون می توانیم آن را تغییر دهیم. با اطمینان از اینکه در دایرکتوری هستید که به تازگی ایجاد کرده اید ، جادوگر بسته NPM را راه اندازی کنید.

npm init

از شما می خواهد موارد مختلفی مانند نام برنامه خود ، پرونده شروع ، پروانه و موارد دیگر را وارد کنید. اکثر زمینه هایی که می توانید بصورت پیش فرض بجز زمینه های واضح تر مانند نام برنامه خود قرار دهید. در پایان ، اینگونه خواهد بود:

{
  "name": "site",
  "version": "1.0.0",
  "description": "Hapi.js site",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "rich",
  "license": "MIT"
}

پس از رضایت از نتیجه ، ENTERبرای ذخیره پرونده کلیک کنید .

نصب Hapi.js

اکنون که دایرکتوری شما با موفقیت ساخته شد ، اکنون می توانیم نصب Hapi.js. همانطور که قبلاً ذکر شد ، ما از NPM برای بارگیری Hapi.js و همچنین وابستگی های آن برای پروژه خود استفاده خواهیم کرد. در فهرست پروژه ، موارد زیر را اجرا کنید.

npm install hapi.js

این Hapi.js را از NPM بارگیری می کند و آن را در فهرست پروژه ما نصب می کند. در همان اجرا ، هرگونه وابستگی که Hapi.js ممکن است به آن متکی باشد نیز برای راحتی ما بارگیری می شود.

برنامه نمونه ما را تنظیم کنید

اکنون زمان آن فرا رسیده است که پرونده اصلی برنامه Hapi.js را تنظیم کنیم. این شامل همه کد های ما برای برنامه است. در کنار جاده ، می توانیم کد برنامه خود را گسترش داده و مواردی را که می بینیم به آن اضافه کنیم.

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

nano index.js

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

const Hapi=require('hapi');
const server=Hapi.server({
    host:'localhost',
    port: 3000
});

server.route({
    method:'GET',
    path:'/',
    handler:((request,h)) => {
        return 'Sample Hapi.js Application';
    }
});
async function start() {

    try {
        await server.start();
    } catch (err) {
        console.log(err);
        process.exit(1);
    }
    console.log(`Our server is running! ${server.info.uri}`);
};

start();

ابتدا ماژول Hapi را وارد می کنیم. سپس سازنده سرور خود را که شامل میزبان مورد نظر برای اجرای سرور و همچنین درگاه است ، آغاز می کنیم که 3000برای این آموزش است. در مرحله بعد ، یک روتر اساسی را تنظیم می کنیم که نشان می دهد هر وقت شخصی به سایت مراجعه کرد ، با یک پیام ساده مورد استقبال قرار می گیرند. برای خاموش کردن همه اینها ، ما یک تابع async داریم ، برای شروع سرور خود ، که به کنسولی که سرور ما در حال کار است ، وارد شوید. پس از اتمام ، پرونده را ذخیره کرده و ببندید ( CTRL+ X)

اکنون که پرونده اصلی ما تنظیم شده است ، ما آماده هستیم تا برنامه خود را شروع کنیم.

node index.js

اگر Our server is running!در کنسول " " را ببینید ، سرور با موفقیت شروع به کار کرد.

Nginx را نصب کنید

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

sudo apt update
sudo apt install nginx -y 

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

Nginx را پیکربندی کنید

برای اینکه Nginx بتواند پروکسی را تغییر دهد ، باید یک فایل پیکربندی ایجاد کنیم. این پرونده پیکربندی اطلاعاتی در مورد برنامه ما ، که Nginx برای پروکسی معکوس استفاده خواهد کرد ، در اختیار شما قرار خواهد داد.

پیکربندی پیش فرض را که Nginx ایجاد کرده است حذف کنید ، زیرا بعداً آن را جایگزین آن می کنیم.

sudo rm /etc/nginx/sites-enabled/default

یک پرونده جدید در sites-availableپوشه ایجاد کنید. در مورد نامگذاری ، ما می توانیم به سادگی site، ساده تر بمانیم .

sudo nano /etc/nginx/sites-available/site

در پرونده موارد زیر را بچسبانید و ذخیره کنید.

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:3000/;
    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;
    }
}

در این پرونده ، ما به نگین می گوییم که به درگاه گوش دهد 80. ما همچنین گذرگاه پروکسی را به localhostآدرس و پورت تنظیم می کنیم 3000که همان درگاه برنامه Hapi ما است.

اکنون می توانید دوباره به فهرست برنامه خود بروید و سایت را راه اندازی کنید. پس از راه اندازی سایت ، به سادگی به " http://yourdomain.comیا" بروید http://yourip، و متن را می بینید " Hello World".

PM2 را نصب کنید

PM2 را می توان در مخزن NPM یافت و شما می توانید آن را در سطح جهان نصب کنید تا مانند هر مکان در دسترس باشد.

sudo npm install pm2 -g

-gپرچم در پایان نشان می دهد که ما می خواهیم به نصب ماژول به پوشه ماژول های جهانی است، که به ما اجازه خواهد به استفاده از آن در خارج از دایرکتوری پروژه ما است. این برای اینکه پروژه ما مانند یک برنامه عادی سیستم رفتار کند ، استفاده می شود.

شروع برنامه ما با PM2

پس از نصب PM2 ، دوباره به فهرست پروژه خود بروید. نحو شروع برنامه ما اکنون کمی متفاوت خواهد بود. اینگونه است که ما با PM2 این کار را خواهیم کرد.

pm2 start index.js --name site

ما از تابع شروع PM2 استفاده می کنیم ، که اساساً نمایه ای را برای برنامه ما ایجاد می کند ، تحت این نام site. پس از اجرای آن فرمان ، وب سایت شما شروع می شود اما متوجه می شوید که سیاههها نشان داده نمی شوند. دلیلش این است که روشی که اکنون مشاهده می کنیم سیاههها متفاوت است.

pm2 logs site

حتی می توانید با این --linesاستدلال چند خط سیاهه را که می خواهید ببینید ، تعیین کنید .

نتیجه

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



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 است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد