1. บทนำสู่ Hapijs
Hapijs เป็นเฟรมเวิร์กแอปพลิเคชันที่ใช้ Node.js ซึ่งเหมาะสำหรับการสร้างแอพพลิเคชั่นและบริการ เป้าหมายการออกแบบคือการอนุญาตให้นักพัฒนามุ่งเน้นไปที่การพัฒนาตรรกะทางธุรกิจสำหรับแอปพลิเคชันที่นำกลับมาใช้ใหม่และให้โครงสร้างพื้นฐานที่จำเป็นในการสร้างตรรกะทางธุรกิจของแอปพลิเคชัน Hapijs เวอร์ชันล่าสุดคือเวอร์ชัน 7.2.0 ในปัจจุบัน
2. การติดตั้ง Hapijs และการกำหนดค่าโครงการ
1. ติดตั้งไลบรารี Hapi
การติดตั้ง hapijs นั้นง่ายมากดำเนินการคำสั่งต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
$ sudo npm ติดตั้ง hapi -g
[email protected]/usr/local/lib/node_modules/hapi
├ดุหนัก [email protected]
├──รายการ @1.1.0
├ดุ [email protected] ([email protected])
├ดุ [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
└ดุ [email protected] ([email protected], [email protected])
2. กำหนดค่าโครงการ
1) สร้างไดเรกทอรีใหม่ที่เรียกว่า MyProject
การคัดลอกรหัสมีดังนี้:
$ mkdir myproject
$ cd myproject
2) เรียกใช้คำสั่งเริ่มต้นในไดเรกทอรี
การคัดลอกรหัสมีดังนี้:
$ npm init
คำสั่งนี้สร้างไฟล์ package.json ซึ่งเป็นข้อมูลเมตาของโครงการ
จากนั้นเรียกใช้คำสั่ง:
การคัดลอกรหัสมีดังนี้:
$ npm ติดตั้ง -save hapi
มันจะติดตั้งไลบรารี hapi ลงในโครงการและเขียนการพึ่งพา hapi ไปยัง package.json
ณ จุดนี้ทุกอย่างที่จำเป็นสำหรับการพัฒนาโครงการก็พร้อม
iii. ตัวอย่างการพัฒนา
1. สร้างเซิร์ฟเวอร์
การคัดลอกรหัสมีดังนี้:
// server.js
var hapi = ต้องการ ('hapi');
var server = new hapi.server (3000);
server.start (function () {
console.log ('เซิร์ฟเวอร์ทำงานที่:', server.info.uri);
-
ก่อนอื่นเราต้องการห้องสมุด Hapi
ประการที่สองเราสร้างวัตถุเซิร์ฟเวอร์ Hapi ใหม่และส่งหมายเลขพอร์ตไปยังวัตถุเซิร์ฟเวอร์
ในที่สุดวัตถุเซิร์ฟเวอร์เริ่มต้นขึ้นและข้อมูลบันทึกจะถูกส่งออก
เพื่อให้ชัดเจนเมื่อเราสร้างวัตถุเซิร์ฟเวอร์เราสามารถระบุชื่อโฮสต์ที่อยู่ IP หรือแม้แต่ไฟล์ซ็อกเก็ต Unix หรือไปป์ไลน์ที่ผูกไว้กับชื่อเซิร์ฟเวอร์โดยระบบ Windows
2. เริ่มเซิร์ฟเวอร์
ดำเนินการคำสั่ง:
การคัดลอกรหัสมีดังนี้:
$ node server.js
เยี่ยมชม http://127.0.0.1:3000/ และเบราว์เซอร์แสดงเนื้อหาต่อไปนี้:
การคัดลอกรหัสมีดังนี้:
{"StatusCode": 404, "ข้อผิดพลาด": "ไม่พบ"}
เป็นเรื่องปกติเพราะไม่มีอะไรบนเซิร์ฟเวอร์เองดังนั้นเพิ่มตรรกะการกำหนดเส้นทางด้านล่าง
3. ตรรกะการกำหนดเส้นทาง
การคัดลอกรหัสมีดังนี้:
// server.js
var hapi = ต้องการ ('hapi');
var server = new hapi.server (3000);
Server.route ({
วิธี: 'รับ',
เส้นทาง: '/',
Handler: ฟังก์ชั่น (คำขอตอบกลับ) {
ตอบกลับ ('สวัสดีโลก!');
-
-
Server.route ({
วิธี: 'รับ',
เส้นทาง: '/{ชื่อ}'
Handler: ฟังก์ชั่น (คำขอตอบกลับ) {
ตอบกลับ ('สวัสดี' + encodeuricomponent (request.params.name) + "!");
-
-
server.start (function () {
console.log ('เซิร์ฟเวอร์ทำงานที่:', server.info.uri);
-
เริ่มต้นเซิร์ฟเวอร์อีกครั้ง:
การคัดลอกรหัสมีดังนี้:
$ node server.js
และเยี่ยมชม http://127.0.0.1:3000/ และเบราว์เซอร์จะแสดงเนื้อหาต่อไปนี้:
สวัสดีโลก!
เยี่ยมชม http://127.0.0.1:3000/zhang San และเบราว์เซอร์แสดงเนื้อหาต่อไปนี้:
สวัสดี,%e5%bc%a0%e4%b8%89!
จะเห็นได้ว่าตรรกะการกำหนดเส้นทางทำงานตามปกติ
บันทึก:
พารามิเตอร์ของวิธีการสามารถเป็นวิธี HTTP ที่ถูกต้องหรือเครื่องหมายดอกจัน* (แสดงถึงวิธี HTTP ใด ๆ )
พารามิเตอร์พา ธ กำหนดเส้นทางการเข้าถึงซึ่งสามารถมีพารามิเตอร์พารามิเตอร์เสริมและแม้แต่ไวด์การ์ด
4. ใช้ปลั๊กอิน
เมื่อสร้างเว็บแอปพลิเคชันเรามักจะต้องเข้าถึงบันทึก ในการเพิ่มเอาต์พุตบันทึกพื้นฐานไปยังแอปพลิเคชันเราสามารถโหลดปลั๊กอินที่ดีบนเซิร์ฟเวอร์
1. ติดตั้งปลั๊กอินที่ดี
การคัดลอกรหัสมีดังนี้:
การติดตั้ง $ sudo npm -Save Good
[email protected] node_modules/good
├── [email protected] (รายการ @1.1.0)
└ดุ [email protected] ([email protected], [email protected])
2. อัปเดต Server.js รหัส
การคัดลอกรหัสมีดังนี้:
// server.js
var hapi = ต้องการ ('hapi');
var good = ต้องการ ('ดี');
var server = new hapi.server (3000);
Server.route ({
วิธี: 'รับ',
เส้นทาง: '/',
Handler: ฟังก์ชั่น (คำขอตอบกลับ) {
ตอบกลับ ('สวัสดีโลก!');
-
-
Server.route ({
วิธี: 'รับ',
เส้นทาง: '/{ชื่อ}'
Handler: ฟังก์ชั่น (คำขอตอบกลับ) {
ตอบกลับ ('สวัสดี' + encodeuricomponent (request.params.name) + "!");
-
-
server.pack.register (ดีฟังก์ชั่น (เอ่อ) {
ถ้า (err) {
// มีบางอย่างที่ไม่ดีเกิดขึ้นในการโหลดปลั๊กอิน
โยนเอ่อ;
-
server.start (function () {
server.log ('info', 'เซิร์ฟเวอร์ทำงานที่:' + server.info.uri);
-
-
เรียกใช้ server.js, เอาต์พุตคอนโซล:
การคัดลอกรหัสมีดังนี้:
141102/161007.644, ข้อมูล, เซิร์ฟเวอร์ทำงานที่: http: // localhost: 3000
ถ้าเราไปเยี่ยมชมต่อไป: http://127.0.0.1:3000/liqiang
และ http://127.0.0.1:3000/
คอนโซลจะยังคงส่งออก:
การคัดลอกรหัสมีดังนี้:
141102/161150.689, คำขอ, http: // thinker-lq: 3000: get/liqiang {} 200 (37ms)
141102/161155.812, คำขอ, http: // thinker-lq: 3000: get/{} 200 (4ms)