Buat Aplikasi Web Hapi.js Menggunakan Node.js di Ubuntu 16.04

Hapi.js adalah rangka kerja Node.js kaya, mantap, dan berkuasa yang direka untuk membina aplikasi web dalam ekosistem Node.js. Reka bentuk mudah menjadikannya mudah untuk dimulakan. Hapi menggunakan banyak ciri ES6 JavaScript terkini pada terasnya, seperti janji ES6. Bagi anda yang telah menggunakan Express sebelum ini, Hapi membolehkan anda mencuba sesuatu yang baru, dan mengalami semua ciri JavaScript terkini.

Dalam tutorial ini, matlamat kami adalah untuk menyediakan laman web Hapi.js asas, yang dihoskan dari Vultr VPS kami, pada Ubuntu 16.04 LTS. Bagi mereka yang mempunyai domain untuk laman web mereka, kami akan menggunakan proksi terbalik untuk memautkan domain kami ke laman web kami. Akhirnya, kita akan belajar cara menguruskannya dengan pengurus proses. Sekarang bahawa kita telah mendapat jalan keluar, mari bermula.

Memasang Node.js

Kita perlu memasang Node.js. Untuk berbuat demikian pada Ubuntu 16.04 LTS, ikuti arahan ini.

Menambah Repositori

Kita perlu menambah repositori NodeSource APT, yang mengandungi pelepasan LTS terkini Node.js.

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

Kami memuat turun skrip yang akan kami gunakan untuk menambah repository ke senarai sumber kami, serta memasang Node.js dari repositori NodeSource.

Memasang Bina Alat

Selain memasang Node.js itu sendiri, kami juga perlu memasang beberapa alat binaan yang diperlukan, yang akan membantu membina modul yang mungkin perlu kami pasang.

sudo apt-get install -y build-essential

Ini hanya memuat turun dan memasang alat binaan dari repositori.

Menyediakan direktori aplikasi

Adalah praktik yang baik untuk menetapkan folder yang akan kita gunakan untuk aplikasi kita, yang akan berisi semua data aplikasi kita, seperti file konfigurasi dan skrip permulaan. Buat folder, namakan apa sahaja yang anda suka. Demi tutorial ini, saya akan menganggap anda menamakannya site.

mkdir site

Setelah anda membuat folder, sekarang kita dapat mengubahnya. Pastikan anda berada dalam direktori yang baru anda buat, mulakan wizard pakej NPM.

npm init

Ia akan meminta anda memasukkan beberapa perkara yang berbeza, seperti nama aplikasi anda, fail permulaan, lesen dan sebagainya. Kebanyakan bidang anda boleh meninggalkan lalai, kecuali bidang yang lebih jelas, seperti nama permohonan anda. Pada akhirnya, ia akan kelihatan seperti ini:

{
  "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"
}

Setelah anda berpuas hati dengan hasilnya, klik ENTERuntuk menyimpan fail.

Memasang Hapi.js

Sekarang bahawa direktori anda telah berjaya dibina, kini kami boleh meneruskan pemasangan Hapi.js. Seperti yang dinyatakan sebelum ini, kami akan menggunakan NPM untuk memuat turun Hapi.js, serta kebergantungannya, untuk projek kami. Dalam direktori projek, jalankan yang berikut.

npm install hapi.js

Ini memuat turun Hapi.js dari NPM dan memasangnya di direktori projek kami. Dalam jangka masa yang sama, sebarang kebergantungan yang boleh diandalkan oleh Hapi.js juga dimuat turun untuk kemudahan kami.

Menyiapkan aplikasi sampel kami

Kini tiba masanya untuk menyediakan fail aplikasi Hapi.js asas kami. Ini akan mengandungi semua kod kami untuk permohonan itu. Lebih jauh di jalan raya, kami boleh mengembangkan kod aplikasi kami, dan menambahkan lebih banyak perkara kepadanya, seperti yang kita lihat patut.

Seterusnya, kami akan membuat fail permulaan kami. Rujuk semula ke mainbahagian package.jsonfail anda , untuk menentukan dengan tepat bagaimana untuk menamakan fail tersebut. Oleh kerana saya menggunakan skema penamaan lalai, fail kami akan dipanggil index.js.

nano index.js

Sebaik sahaja anda berada di dalam editor teks nano, buat kod aplikasi asas anda, seperti itu.

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();

Pertama, kami mengimport modul Hapi. Kemudian, kami memulakan pembangun pelayan kami, yang mengandungi hos yang ingin kami jalankan pelayannya, dan juga portnya, 3000untuk tutorial ini. Seterusnya, kami menyediakan penghala asas, yang menunjukkan bahawa setiap kali seseorang mengunjungi laman web ini, mereka akan disambut dengan pesan sederhana. Untuk mengatasinya, kami mempunyai fungsi async, untuk memulakan pelayan kami, yang akan log masuk ke konsol yang sedang dijalankan oleh pelayan kami. Setelah selesai, simpan dan tutup fail ( CTRL+ X)

Setelah fail utama kami disiapkan, kami sudah bersedia untuk memulakan aplikasi kami.

node index.js

Sekiranya anda melihat " Our server is running!" di konsol, pelayan berjaya dimulakan.

Pasang Nginx

Oleh kerana Nginx boleh didapati di repositori Ubuntu lalai, pemasangannya mudah. Hanya kemas kini senarai pakej anda, dan pasangnya.

sudo apt update
sudo apt install nginx -y 

Selepas menyegarkan senarai pakej, Nginx dan dependensinya akan dipasang.

Konfigurasikan Nginx

Untuk membolehkan Nginx membalikkan proksi permohonan kami, kami perlu membuat fail konfigurasi. Fail konfigurasi ini akan memegang maklumat mengenai aplikasi kami, yang akan digunakan oleh Nginx untuk proksi terbalik.

Padam konfigurasi lalai yang dibuat oleh Nginx, kerana kami akan menggantikannya dengan kami kemudian nanti.

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

Buat fail baru dalam sites-availablefolder. Adapun penamaan, kita boleh tetap dengan mudah site, untuk kesederhanaan.

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

Dalam fail, tampal yang berikut, dan simpan.

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;
    }
}

Dalam fail ini, kami menyuruh Nginx mendengar di port 80. Kami juga menetapkan laluan proksi ke localhostalamat, dan port 3000, yang merupakan port yang sama dengan aplikasi Hapi kami.

Sekarang anda boleh menavigasi kembali ke direktori aplikasi anda, dan memulakan laman web ini. Setelah laman web dimulakan, arahkan ke http://yourdomain.comatau http://yourip, dan anda akan melihat teksnya " Hello World".

Pasang PM2

PM2 boleh didapati di repositori NPM, dan anda boleh memasangnya secara global untuk diakses dari mana-mana sahaja, seperti itu.

sudo npm install pm2 -g

The -gbendera pada akhir menunjukkan bahawa kita mahu memasang modul untuk folder modul global, yang akan membolehkan kita untuk menggunakan ia di luar daripada direktori projek kami. Ini digunakan agar projek kita berkelakuan seperti aplikasi sistem biasa.

Memulakan aplikasi kami dengan PM2

Setelah memasang PM2, navigasi kembali ke direktori projek anda. Sintaks untuk memulakan aplikasi kita akan sedikit berbeza sekarang. Ini adalah bagaimana kita akan melakukannya dengan PM2.

pm2 start index.js --name site

Kami menggunakan fungsi permulaan PM2, yang pada asasnya mencipta profil untuk aplikasi kami, di bawah nama site. Setelah menjalankan perintah itu, laman web anda akan bermula, tetapi anda akan melihat bahawa log tidak akan dipaparkan. Ini kerana cara kita melihat log sekarang berbeza.

pm2 logs site

Anda juga boleh menentukan berapa baris log yang anda mahu lihat, dengan --lineshujahnya.

Kesimpulannya

Anda telah berjaya menyediakan pelayan web Hapi.js, membalikkannya dengan Nginx, dan belajar bagaimana menguruskannya dengan lebih baik dengan PM2. Dengan pengetahuan ini, anda dapat mengembangkan lagi tutorial ini dan membuat aplikasi Hapi.js yang sangat maju. Untuk mengetahui lebih lanjut mengenai kemungkinan Hapi, kunjungi dokumentasi rasmi mereka . Sekiranya anda ingin mengetahui lebih lanjut mengenai kemungkinan PM2, rujuk panduan permulaan cepat mereka .



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut