จะสร้างคำขอ HTTP ด้วยโมดูลคำขอ Node.js ได้อย่างไร

Ca Srang Khakhx Http Dwy Modul Khakhx Node Js Di Xyangri



คำขอ HTTP เป็นส่วนที่สำคัญที่สุดและเป็นส่วนสำคัญของแอปพลิเคชันแบบโต้ตอบ คำขอเหล่านี้จัดการการถ่ายโอนข้อมูลระหว่างไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ หากผู้ใช้ต้องการข้อมูลเกี่ยวกับแบบสอบถามเฉพาะ ระบบจะส่งคำขอและการตอบกลับของคำขอนี้ซึ่งมีข้อมูลที่จำเป็นจะถูกส่งจากเซิร์ฟเวอร์ ขั้นตอนทั้งหมดนี้ขึ้นอยู่กับหรือใช้ “ HTTP ” คำขอที่สามารถสร้างได้โดยใช้โมดูลภายนอกเช่น “ ขอ '.

คู่มือนี้จะอธิบายขั้นตอนการสร้างคำขอ HTTP ด้วยโมดูลคำขอ Node.js โดยครอบคลุมหัวข้อด้านล่าง:

จะสร้างคำขอ HTTP ด้วยโมดูลคำขอ Node.js ได้อย่างไร







ทางเลือกอื่นของโมดูลคำขอ Node.js



บทสรุป



จะสร้างคำขอ HTTP โดยใช้โมดูลคำขอ Node.js ได้อย่างไร

ขอ ” module เป็นโมดูลที่ตรงไปตรงมาที่สุดที่ช่วยในการส่งหรือรับคำขอ HTTP โมดูลนี้เรียบง่ายเกินไปและเข้าใจง่าย แต่ให้อิสระแก่นักพัฒนาน้อยมาก นอกจากนี้ นักพัฒนาไม่สามารถปรับเปลี่ยนฟังก์ชันการทำงานพื้นฐานหรือปรับปรุงคุณลักษณะที่มีให้ได้อย่างง่ายดาย





บันทึก: แม้ว่า ' ขอ ” เป็นโมดูลที่ดี อย่างไรก็ตาม ผู้สร้างได้ตัดสินใจที่จะหยุดทำงานในโมดูลนี้ และโมดูลนี้จะเลิกใช้งานโดยสมบูรณ์ในวันที่ 11 กุมภาพันธ์ 2020

อย่างไรก็ตามหากคุณยังต้องการทราบแนวคิดในการดำเนินการตามนี้” ขอ ” จากนั้นไปที่ขั้นตอนที่กล่าวถึงด้านล่าง



ขั้นตอนที่ 1: การติดตั้งโมดูล “คำขอ” และการเริ่มต้นโครงการ Node.js

เริ่มต้นด้วยการเริ่มต้น ' เวลา 22.00 น ” แพ็คเกจภายในไดเร็กทอรีที่ต้องการเพื่อสร้างโปรเจ็กต์ Node.js โดยการรันคำสั่ง:

เวลาเริ่มต้น npm - - และ

ผลลัพธ์แสดงว่า 'npm' ได้รับการเริ่มต้นเรียบร้อยแล้วในไดเร็กทอรีที่ให้มา:

จากนั้นทำการติดตั้งที่จำเป็น “ ขอ ” โมดูลโดยดำเนินการคำสั่ง:

คำขอติดตั้ง npm

ผลลัพธ์แสดงว่าการติดตั้งเสร็จสมบูรณ์แล้ว แต่เนื่องจากโมดูลนี้เลิกใช้แล้ว นั่นเป็นสาเหตุที่ 'npm' ส่งคำเตือนที่เลิกใช้แล้ว:

ขั้นตอนที่ 2: การใส่รหัสจำลอง

สร้าง “ .js ” ในไดเร็กทอรีโปรเจ็กต์ Node.js ซึ่งเป็นไฟล์ที่โปรแกรมต่างๆ จะถูกแทรกและดำเนินการในภายหลัง จากนั้น แทรกบรรทัดโค้ดด้านล่างเพื่อแสดงการใช้งานจริงของ ' ขอ ” โมดูลดังแสดงด้านล่าง:

ค่าคงที่ คำขอObj = จำเป็นต้อง ( 'ขอ' )

ให้ baseUrl = 'https://jsonplaceholder.typicode.com/todos/6' ;

คำขอObj ( ฐาน URL, ( ปัญหาเนื้อหา ) => {

ถ้า ( ปัญหา ) คอนโซล บันทึก ( ปัญหา )

คอนโซล บันทึก ( เนื้อหา ) ;

} ) ;

คำอธิบายของบล็อกโค้ดข้างต้นมีดังนี้:

  • ประการแรก “ ขอ ” โมดูลถูกนำเข้าแล้ว และอ็อบเจ็กต์ของมันถูกเก็บไว้ในตัวแปรใหม่ชื่อ “ คำขอObj '.
  • จากนั้น URL ของไฟล์ JSON ออนไลน์บางไฟล์ที่ต้องดึงเนื้อหาจะถูกส่งผ่านเป็นค่าสำหรับ ' ฐานUrl ” ชื่อตัวแปร
  • จากนั้น “ คำขอObj ” ตัวแปรถูกเรียกใช้เป็นตัวสร้างและ “ ฐานUrl ” ถูกส่งผ่านเป็นพารามิเตอร์แรก และฟังก์ชันเรียกกลับเป็นพารามิเตอร์ตัวที่สอง
  • ภายในฟังก์ชันการโทรกลับ “ ถ้า ” ใช้เพื่อแสดงข้อผิดพลาดที่เกิดขึ้นและข้อมูลที่ดึงมาจะแสดงบนหน้าต่างคอนโซลด้วย

ขั้นตอนที่ 3: การดำเนินการ

หากต้องการรันโค้ดข้างต้น ให้รันไฟล์ที่มีชื่อ “ proApp.js ” ในกรณีของเราโดยใช้คำสั่ง:

โหนด proApp เจส

ผลลัพธ์หลังการดำเนินการแสดงว่าข้อมูลที่ระบุได้รับการดึงและแสดงบนคอนโซล:

ทางเลือกอื่นของโมดูลคำขอ Node.js

เนื่องจากการเสื่อมราคาของ “ ขอ ” โมดูล มีโมดูลภายนอกใหม่จำนวนมากที่สามารถใช้เพื่อทำงานที่คล้ายกันได้ โมดูลทางเลือกเหล่านี้มีการระบุไว้ด้านล่าง:

ทางเลือก คำอธิบาย
โหนดดึงข้อมูล เป็นโมดูลสัญญาหรือแบบสตรีมที่นำเมธอด window.fetch() มาไว้ใน Node.js
http http ” เป็นโมดูลเริ่มต้นที่ Node.js มอบให้ และมีหลายวิธีในการโต้ตอบกับเซิร์ฟเวอร์ http ในขณะที่ให้อิสระมากขึ้น
axios อิงตามสัญญาและสตรีมอย่างแท้จริงในการดำเนินการร้องขอ HTTP ผ่านเบราว์เซอร์จากทั้งเซิร์ฟเวอร์และไคลเอนต์
ได้รับ มันเป็นมิตรกับมนุษย์เป็นพิเศษและเป็นไลบรารีที่ทรงพลังที่สุดสำหรับคำขอ HTTP
ตัวแทนซุปเปอร์ อิงตามการผูกมัดและสัญญาในขณะที่ให้การสนับสนุนไคลเอนต์ HTTP ระดับสูงจำนวนมาก มีช่วงการเรียนรู้ต่ำเช่นกัน
งอ เป็น HTTP การทำงานที่ส่งคืนฟังก์ชันประเภทอะซิงก์
ทำให้ดึงข้อมูลเกิดขึ้น รูปแบบที่เพิ่มขึ้นของ “ โหนดดึงข้อมูล ' โมดูล. ขณะนี้มี 'การรวมคำขอ' 'การสนับสนุนแคช' และอื่นๆ อีกมากมายเช่นกัน
เข็ม โมดูลนี้เป็นโมดูลที่ชัดเจนและก้าวหน้าที่สุด ส่วนใหญ่จะใช้เพื่อดึงข้อมูลโดยการส่งคำขอไปยังแหล่งบุคคลที่สาม
จิ๋ว-json-http ไคลเอ็นต์ HTTP แบบเรียบง่ายใช้เพื่อดำเนินการเพย์โหลด JSON

ตอนนี้ เรามาดำเนินการร้องขอ HTTP โดยใช้โมดูลบางส่วนที่กล่าวถึงข้างต้น

วิธีที่ 1: การร้องขอ HTTP โดยใช้โมดูล HTTP เริ่มต้น

http ” เป็นโมดูลเริ่มต้นเนื่องจากได้รับการติดตั้งโดยอัตโนมัติในขณะที่เริ่มต้นโครงการ node.js โดยการรันคำสั่ง “ เวลาเริ่มต้น npm ' หรือ ' npm เริ่มต้น -y '. เนื่องจากเราได้สร้างโปรเจ็กต์ node.js แล้ว เราจึงข้ามขั้นตอนการเริ่มต้นที่แสดงไว้ตอนต้นของบทความนี้ และเจาะลึกไปที่การสร้างคำขอ http โดยตรงโดยใช้โมดูล “http”

ในตัวอย่างโค้ดด้านล่าง เซิร์ฟเวอร์ได้ถูกสร้างขึ้น และเป็นการตอบกลับ ข้อความจำลองจะถูกส่งไปยังเซิร์ฟเวอร์:

ค่าคงที่ httpObj = จำเป็นต้อง ( 'http' ) ;

ค่าคงที่ เซิร์ฟเวอร์ท้องถิ่น = httpObj. สร้างเซิร์ฟเวอร์ ( ( การร้องขอการตอบสนอง ) => {

การตอบสนอง. เขียน ( 'ยินดีต้อนรับสู่เพจทวิตเตอร์' ) ;

การตอบสนอง. จบ ( ) ;

} ) ;

เซิร์ฟเวอร์ท้องถิ่น ฟัง ( 8080 , ( ) => {

คอนโซล บันทึก ( 'เซิร์ฟเวอร์เริ่มต้นที่พอร์ตหมายเลข 8080' ) ;

} ) ;

ในบล็อคโค้ดด้านบน:

  • ประการแรก “ http ” โมดูลถูกนำเข้าภายในไฟล์ปัจจุบันและวัตถุถูกเก็บไว้ในตัวแปรใหม่ชื่อ “ httpObj '.
  • ต่อไปเซิร์ฟเวอร์ชื่อ “ เซิร์ฟเวอร์ท้องถิ่น ” ถูกสร้างขึ้นโดยการเรียกใช้ “ สร้างเซิร์ฟเวอร์() ” และส่งฟังก์ชันการโทรกลับเป็นพารามิเตอร์
  • ภายในฟังก์ชันนี้ ให้เรียกใช้ ' เขียน() ” และกำหนดข้อความจำลองที่แสดงบนเซิร์ฟเวอร์ นอกจากนี้ ให้ปิดเซสชันการตอบกลับด้วยการเรียกใช้ ' จบ() ” ข้อความจำลองแบบสุ่มสามารถแทรกลงในวงเล็บวิธีการได้
  • หลังจากนั้นให้เซิร์ฟเวอร์นี้ดำเนินการผ่าน localhost ที่มีหมายเลขพอร์ตเป็น “ 8080 ” โดยเรียกใช้ “ ฟัง() ' วิธี.

รันโค้ดด้านบนที่มีไฟล์โดยการรันคำสั่งด้านล่าง:

โหนด < ชื่อไฟล์. เจส >

ผลลัพธ์ที่สร้างขึ้นยืนยันว่าคำขอ HTTP ได้ดำเนินการผ่านค่าเริ่มต้น “ http ' โมดูล:

วิธีที่ 2: การสร้างคำขอ HTTP โดยใช้โมดูล Axios ภายนอก

axios ” เป็นโมดูลที่ได้รับความนิยมและใช้กันอย่างแพร่หลายมากที่สุดเมื่อพูดถึงการดำเนินการคำขอ HTTP ในสภาพแวดล้อมแบบเรียลไทม์ หากต้องการใช้โมดูลนี้ นักพัฒนาจะต้องติดตั้งก่อนโดยดำเนินการคำสั่งด้านล่าง:

ติดตั้ง axios.npm

หลังจากดำเนินการคำสั่ง Terminal จะปรากฏดังนี้:

ตอนนี้เรามาดูตัวอย่างที่ “ รับ ” คำขอ HTTP จะถูกนำมาใช้เพื่อดึงข้อมูลจาก API แบบสุ่ม จากนั้นข้อมูลที่ได้รับจะแสดงบนคอนโซลด้วย:

ค่าคงที่ axiosObj = จำเป็นต้อง ( 'แอกซิออส' ) ;

// URL ของ JSON Placeholder API เพื่อเลือกเฉพาะบางส่วนของข้อมูลที่มี ID เท่ากับ 5

ค่าคงที่ apiUrl = 'https://jsonplaceholder.typicode.com/todos/5' ;

// กำลังเริ่มต้นคำขอ GET

axiosObj. รับ ( apiUrl )

. แล้ว ( การตอบสนอง => {

คอนโซล บันทึก ( 'สถานะสำหรับการตอบกลับจาก API คือ:' , การตอบสนอง. สถานะ ) ;

คอนโซล บันทึก ( 'ข้อมูลที่ได้รับจาก API เป็นการตอบสนองต่อคำขอ:' , การตอบสนอง. ข้อมูล ) ;

} )

. จับ ( ข้อผิดพลาด => {

คอนโซล ข้อผิดพลาด ( 'เกิดข้อผิดพลาด:' , ข้อผิดพลาด ) ;

} ) ;

คำอธิบายของบล็อกโค้ดข้างต้นระบุไว้ด้านล่าง:

  • ขั้นแรก นำเข้า ' axios ” ไลบรารีและจัดเก็บอินสแตนซ์ไว้ในตัวแปรชื่อ “ axiosObj ” ซึ่งทำหน้าที่เป็นวัตถุของไลบรารี “axios”
  • ต่อไปให้สร้างตัวแปร “ apiUrl ” และจัดเก็บ URL ของ API ที่ต้องการดึงข้อมูล ในกรณีของเรา URL คือ “ https://jsonplaceholder.typicode.com/todos/5 ” เพราะเราต้องการดึงข้อมูลที่มี ID เป็น “ 5 '.
  • ตอนนี้ด้วยความช่วยเหลือของ “ axiosObj ” เรียกใช้ “ รับ() ” วิธีการและผ่าน “ URL ของแอป ” ตัวแปรภายในวงเล็บเมธอดนี้
  • แนบ “ แล้ว() ” วิธีการที่มี “ รับ() ” วิธีการและสร้างฟังก์ชันลูกศรที่ไม่ระบุชื่อที่มีพารามิเตอร์เดียวของ “ การตอบสนอง '.
  • นี้ ' การตอบสนอง ” ทำหน้าที่เป็นวัตถุที่มีค่าหรือข้อมูลที่ส่งคืนเพื่อตอบสนองต่อคำขอผ่านทาง “ รับ() ' วิธี.
  • ด้วยความช่วยเหลือนี้” การตอบสนอง ” ดึงสถานะของคำขอและเนื้อหาโดยแนบไฟล์ “ สถานะ ' และ ' ข้อมูล ” คำหลักที่อยู่ติดกัน
  • สุดท้ายแนบ “ จับ() ” วิธีการแสดงข้อผิดพลาดหากเกิดขึ้นระหว่างการทำงานของโปรแกรม

ตอนนี้ให้คอมไพล์โค้ดด้านบนในสภาพแวดล้อม Node.js โดยใช้คำสั่งด้านล่างบนเทอร์มินัล:

โหนด < ชื่อไฟล์ >

ผลลัพธ์ที่แสดงแสดงว่าข้อมูลที่ร้องขอได้รับการดึงมาจากแหล่งที่ให้มาเป็นการตอบกลับและแสดงบนหน้าต่างคอนโซล:

นั่นคือทั้งหมดที่เกี่ยวกับการสร้างคำขอ HTTP ด้วย Node.js Request Module และภาพรวมโดยย่อของทางเลือกอื่น

บทสรุป

หากต้องการส่งคำขอ HTTP ผ่านทาง “ ขอ ” โมดูล URL ที่ต้องการจากตำแหน่งที่จะดำเนินการดึงข้อมูล จากนั้น อินสแตนซ์โมดูล “คำขอ” จะถูกสร้างขึ้น และส่ง URL ที่เลือกซึ่งจำเป็นต้องใช้คำขอ HTTP ให้เป็นพารามิเตอร์แรก ฟังก์ชันการโทรกลับที่จำเป็นยังใช้เพื่อตรวจสอบข้อผิดพลาดที่เกิดขึ้น และดึงเนื้อหาหรือการตอบสนองของคำขอ HTTP คู่มือนี้ได้อธิบายกระบวนการสร้างคำขอ HTTP โดยใช้โมดูลคำขอ