Rumah hujung hadapan web tutorial js Pengenalan kepada rangka kerja aplikasi sumber terbuka Node.js HapiJS

Pengenalan kepada rangka kerja aplikasi sumber terbuka Node.js HapiJS

May 16, 2016 pm 04:20 PM
node.js

Artikel ini terutamanya memperkenalkan pengenalan HapiJS, rangka kerja aplikasi sumber terbuka Node.js. Artikel ini menerangkan pengenalan HapiJS, pemasangan HapiJS, konfigurasi projek dan contoh pembangunan boleh merujuk kepadanya.

1 Pengenalan kepada HapiJS

HapiJS ialah sumber terbuka, rangka kerja aplikasi berasaskan Node.js, yang sesuai untuk membina aplikasi Matlamat reka bentuk program dan perkhidmatan adalah untuk membolehkan pembangun menumpukan pada membangunkan logik perniagaan aplikasi boleh guna semula dan untuk menyediakan pembangun dengan infrastruktur yang diperlukan untuk membina logik perniagaan aplikasi. Versi terkini HapiJS kini ialah versi 7.2.0.

2. Pemasangan HapiJS dan konfigurasi projek

1 Pasang perpustakaan Hapi
Pemasangan HapiJS sangat mudah, laksanakan perkara berikut. arahan:

$ sudo npm install hapi -g
hapi@7.2.0 /usr/local/lib/node_modules/hapi
├── cryptiles@2.0.4
├── heavy@1.0.0
├── topo@1.0.2
├── accept@1.0.0
├── items@1.1.0
├── kilt@1.1.1
├── catbox-memory@1.1.0
├── boom@2.5.1
├── qs@2.2.4
├── call@1.0.0
├── statehood@1.2.0
├── h2o2@2.0.1
├── iron@2.1.2
├── shot@1.3.5
├── glue@1.0.0
├── wreck@5.0.1
├── hoek@2.8.0
├── catbox@4.0.3
├── vision@1.1.0
├── mimos@1.0.0 (mime-db@1.1.1)
├── rejoice@1.0.0 (bossy@1.0.2)
├── inert@1.1.0 (lru-cache@2.5.0)
├── joi@4.7.0 (isemail@1.1.1)
└── subtext@1.0.1 (content@1.0.1, pez@1.0.0)
Salin selepas log masuk

2 Konfigurasikan projek

1) Buat direktori baharu bernama myproject

$ mkdir myproject
$ cd myproject
Salin selepas log masuk

2) Dalam direktori Jalankan arahan permulaan

$ npm init
Salin selepas log masuk

Perintah ini akan menjana fail package.json, yang merupakan metadata projek.
Kemudian laksanakan arahan:

$ npm install --save hapi
Salin selepas log masuk

Ia akan memasang perpustakaan hapi pada projek dan menulis kebergantungan hapi ke dalam package.json.

Pada ketika ini, segala yang diperlukan untuk pembangunan projek telah disediakan.

3. Contoh Pembangunan

1. Buat pelayan

// server.js
var Hapi = require('hapi');
var server = new Hapi.Server(3000);
server.start(function(){
console.log('Server running at: ', server.info.uri);
});
Salin selepas log masuk

Pertama, kami memerlukan perpustakaan Hapi.

Kedua, kami mencipta objek pelayan hapi baharu dan lulus nombor port untuk mendengar objek pelayan.

Akhir sekali, objek pelayan bermula dan mengeluarkan maklumat log.

Untuk menjelaskan, apabila kami mencipta objek pelayan, kami boleh memberikan nama hos, alamat IP, malah fail soket Unix, atau sistem Windows yang terikat pada paip pelayan yang dinamakan.

2. Mulakan pelayan

Jalankan arahan:

$ node server.js
Salin selepas log masuk
Salin selepas log masuk

Lawati http://127.0.0.1:3000/, penyemak imbas memaparkan kandungan berikut:

{"statusCode":404,"error":"Not Found"}
Salin selepas log masuk

Ini adalah perkara biasa kerana tiada kandungan pada pelayan itu sendiri.

3. Logik penghalaan

// server.js
var Hapi = require('hapi');
var server = new Hapi.Server(3000);
server.route({
method: 'GET',
path: '/',
handler: function(request, reply){
reply('Hello, world!');
}
});
server.route({
method: 'GET',
path: '/{name}',
handler: function(request, reply){
reply('Hello, ' + encodeURIComponent(request.params.name) + "!");
}
});
server.start(function(){
console.log('Server running at: ', server.info.uri);
});
Salin selepas log masuk

Mulakan pelayan sekali lagi:

$ node server.js
Salin selepas log masuk
Salin selepas log masuk

dan lawati http://127.0.0.1:3000/, penyemak imbas memaparkan kandungan berikut :

Helo, dunia!

Lawati http://127.0.0.1:3000/Zhang San, penyemak imbas memaparkan kandungan berikut:

Helo, Zhang San !

Dapat dilihat bahawa logik penghalaan berjalan seperti biasa.

Nota: Parameter kaedah
boleh berupa mana-mana kaedah HTTP yang sah, atau ia boleh menjadi asterisk * (menunjukkan sebarang kaedah HTTP).
Parameter laluan mentakrifkan laluan akses, yang boleh mengandungi parameter, parameter pilihan dan juga kad bebas.

4. Menggunakan pemalam

Apabila membuat aplikasi web, biasanya kita perlu mengakses log. Untuk menambah output pengelogan asas pada aplikasi, kami boleh memuatkan pemalam yang baik pada pelayan.

1 Pasang pemalam yang baik

$ sudo npm install --save good
good@3.1.1 node_modules/good
├── json-stringify-safe@5.0.0
├── good-reporter@2.0.0
├── async@0.9.0
├── hoek@2.8.1
├── moment@2.8.3
├── good-file@2.0.0 (items@1.1.0)
└── joi@4.7.0 (topo@1.0.2, isemail@1.1.1)
Salin selepas log masuk

2. Kemas kini kod server.js

// server.js
var Hapi = require('hapi');
var Good = require('good');
var server = new Hapi.Server(3000);
server.route({
method: 'GET',
path: '/',
handler: function(request, reply){
reply('Hello, world!');
}
});
server.route({
method: 'GET',
path: '/{name}',
handler: function(request, reply){
reply('Hello, ' + encodeURIComponent(request.params.name) + "!");
}
});
server.pack.register(Good, function(err){
if(err){
// something bad happened loading the plugin
throw err;
}
server.start(function(){
server.log('info', 'Server running at: ' + server.info.uri);
});
});
Salin selepas log masuk

Jalankan server.js, output konsol:

141102/161007.644, info, Server running at: http://localhost:3000
Salin selepas log masuk

Jika kita kemudian melawat: http://127.0.0.1:3000

Konsol akan terus mengeluarkan:

141102/161150.689, request, http://Thinker-LQ:3000: get /liqiang {} 200 (37ms) 
141102/161155.812, request, http://Thinker-LQ:3000: get / {} 200 (4ms)
Salin selepas log masuk

Di atas adalah ringkasan bab ini Semua kandungan, sila lawati Tutorial Video Node.js untuk lebih banyak tutorial berkaitan!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Artikel tentang kawalan memori dalam Node Artikel tentang kawalan memori dalam Node Apr 26, 2023 pm 05:37 PM

Perkhidmatan Node yang dibina berdasarkan bukan sekatan dan dipacu peristiwa mempunyai kelebihan penggunaan memori yang rendah dan sangat sesuai untuk mengendalikan permintaan rangkaian besar-besaran. Di bawah premis permintaan besar-besaran, isu yang berkaitan dengan "kawalan memori" perlu dipertimbangkan. 1. Mekanisme kutipan sampah V8 dan had ingatan Js dikawal oleh mesin kutipan sampah

Penjelasan grafik terperinci tentang memori dan GC enjin Node V8 Penjelasan grafik terperinci tentang memori dan GC enjin Node V8 Mar 29, 2023 pm 06:02 PM

Artikel ini akan memberi anda pemahaman yang mendalam tentang memori dan pengumpul sampah (GC) enjin NodeJS V8 saya harap ia akan membantu anda!

Node.js 19 dikeluarkan secara rasmi, mari bercakap tentang 6 ciri utamanya! Node.js 19 dikeluarkan secara rasmi, mari bercakap tentang 6 ciri utamanya! Nov 16, 2022 pm 08:34 PM

Node 19 telah dikeluarkan secara rasmi Artikel ini akan memberi anda penjelasan terperinci tentang 6 ciri utama Node.js 19. Saya harap ia akan membantu anda!

Mari bercakap secara mendalam tentang modul Fail dalam Node Mari bercakap secara mendalam tentang modul Fail dalam Node Apr 24, 2023 pm 05:49 PM

Modul fail ialah enkapsulasi operasi fail asas, seperti membaca/menulis/membuka/menutup/memadam fail, dsb. Ciri terbesar modul fail ialah semua kaedah menyediakan dua versi **segerak** dan ** asynchronous**, dengan Kaedah dengan akhiran penyegerakan adalah semua kaedah penyegerakan, dan kaedah yang tidak semuanya adalah kaedah heterogen.

Mari kita bincangkan tentang cara memilih imej Node.js Docker terbaik? Mari kita bincangkan tentang cara memilih imej Node.js Docker terbaik? Dec 13, 2022 pm 08:00 PM

Memilih imej Docker untuk Node mungkin kelihatan seperti perkara remeh, tetapi saiz dan potensi kelemahan imej itu boleh memberi kesan yang ketara pada proses dan keselamatan CI/CD anda. Jadi bagaimana kita memilih imej Node.js Docker yang terbaik?

Apakah yang perlu saya lakukan jika nod tidak boleh menggunakan arahan npm? Apakah yang perlu saya lakukan jika nod tidak boleh menggunakan arahan npm? Feb 08, 2023 am 10:09 AM

Sebab mengapa nod tidak boleh menggunakan arahan npm adalah kerana pembolehubah persekitaran tidak dikonfigurasikan dengan betul Penyelesaiannya ialah: 1. Buka "Sistem Sifat"; 2. Cari "Pembolehubah Persekitaran" -> "Pembolehubah Sistem", dan kemudian edit persekitaran. pembolehubah; 3. Cari lokasi folder nodejs;

Mari bercakap tentang mekanisme GC (pengumpulan sampah) dalam Node.js Mari bercakap tentang mekanisme GC (pengumpulan sampah) dalam Node.js Nov 29, 2022 pm 08:44 PM

Bagaimanakah Node.js melakukan GC (pengumpulan sampah)? Artikel berikut akan membawa anda melaluinya.

Mari kita bincangkan tentang gelung acara dalam Node Mari kita bincangkan tentang gelung acara dalam Node Apr 11, 2023 pm 07:08 PM

Gelung peristiwa ialah bahagian asas Node.js dan mendayakan pengaturcaraan tak segerak dengan memastikan bahawa utas utama tidak disekat Memahami gelung peristiwa adalah penting untuk membina aplikasi yang cekap. Artikel berikut akan memberi anda pemahaman yang mendalam tentang gelung acara dalam Node.

See all articles