แอปพลิเคชัน robost สมัยใหม่มีสื่อกลางในการจัดเก็บข้อมูลที่แบ็กเอนด์ เช่น แอปพลิเคชัน Node ซึ่งสามารถทำงานกับทั้งที่ไม่เกี่ยวข้อง (เช่น PostgresQL, MongoDB) และเชิงสัมพันธ์ (เช่น MySQL, Oracle)
MongoDB เป็นฐานข้อมูลที่ไม่เกี่ยวข้องซึ่งค่อนข้างใช้งานง่ายและมีประสิทธิภาพ และหากคุณเป็นนักพัฒนา Node.js ที่ต้องการเรียนรู้คุณประโยชน์ที่ได้รับ และวิธีการเริ่มต้นสร้างการผสานรวมที่ปลอดภัยกับแอปพลิเคชัน Node ของคุณ สิ่งนี้ เป็นแนวทางสำหรับคุณ!
ในบทความนี้ เราจะเรียนรู้วิธีบูรณาการ/เชื่อมต่อกับ MongoDB ฐานข้อมูลที่ไม่เกี่ยวข้องกับ Node.js ที่ได้รับความนิยมอย่างมาก และดูว่าเราจะใช้งานมันภายในแอปพลิเคชัน Node ได้อย่างไร
หมายเหตุ หากต้องการดำเนินการต่อ คุณจะต้องติดตั้ง Node.js คุณสามารถดาวน์โหลดเวอร์ชันเสถียรที่ยาวที่สุด (LTS) และติดตั้งลงในเครื่องของคุณได้จากเวอร์ชันดังกล่าว หน้าดาวน์โหลดอย่างเป็นทางการ.
ข้อมูลโดยย่อเกี่ยวกับ MongoDB
MongoDB เป็นฐานข้อมูลตามเอกสารที่ได้รับความนิยมและทันสมัยที่สุด โดยที่ข้อมูลทั้งหมดถูกจัดเก็บไว้ใน Binary JSON (สัญลักษณ์วัตถุ JavaScript) หรือที่เรียกว่า BSON BSON คือ เอกสารโดยไม่จำเป็นต้องมีสคีมาข้อมูลที่กำหนดไว้ล่วงหน้า ช่วยให้ข้อมูลที่แอปพลิเคชันเข้าถึงบ่อยครั้งร่วมกันสามารถจัดเก็บไว้ในที่เดียวกัน และทำให้การอ่านฐานข้อมูลง่ายและรวดเร็ว
แตกต่างจากตารางเชิงสัมพันธ์ตรงที่คอลเลกชันมีอยู่ในตัวเอง ซึ่งทำให้ทำงานได้ง่ายขึ้นมาก เมื่อมีการสร้างเอกสารใหม่ในคอลเลกชัน MongoDB จะมีการกำหนด ID ให้กับเอกสารเพื่อทำให้ไม่ซ้ำกับคอลเลกชันนั้น และภายในเอกสารสามารถกำหนดหลายฟิลด์ได้ โดยที่ค่าอาจเป็นตัวแปรของประเภทข้อมูลตั้งแต่อาร์เรย์ สตริง จำนวนเต็ม วัตถุ และอื่นๆ
เพื่อจัดการข้อมูล API การสืบค้นมีประโยชน์สำหรับการดำเนินการพื้นฐานสร้าง อ่าน อัปเดต และลบ (CRUD) ในฐานข้อมูล ดัชนีรองยังสามารถสร้างขึ้นเพื่อให้แน่ใจว่ามีการปรับให้เหมาะสมและทำให้การสืบค้นทั่วไปรวดเร็วมาก นอกจากนี้ยังรองรับการสืบค้นเชิงพื้นที่ซึ่งทำให้สามารถค้นหาเอกสารในตำแหน่งทางภูมิศาสตร์ที่เฉพาะเจาะจงได้
เริ่มต้นใช้งาน MongoDB
ก่อนที่เราจะเริ่มเชื่อมต่อกับ MongoDB จากแอปพลิเคชัน Node ให้ไปที่เว็บไซต์ MongoDB อย่างเป็นทางการเพื่อลงทะเบียนกับ Try Free
ปุ่ม (หากคุณยังไม่มีบัญชี):
หลังจากสร้างบัญชีของคุณแล้ว ให้คลิกไปที่ Build a Database
แล้วคลิกเพื่อสร้างฐานข้อมูล:
จากนั้น สร้างคลัสเตอร์ที่ใช้ร่วมกัน (ฟรีตลอดไป!) และตั้งชื่อตามที่คุณต้องการ
คลัสเตอร์ที่ใช้ร่วมกันเหมาะอย่างยิ่งสำหรับการทดลองในแซนด์บ็อกซ์ที่มีจำกัด คุณสามารถอัปเกรดเป็นคลัสเตอร์ที่ใช้งานจริงได้ตลอดเวลา
เมื่อคุณสร้างคลัสเตอร์สำเร็จแล้ว ให้คลิก Connect
ปุ่มเพื่อเชื่อมต่อกับคลัสเตอร์:
ตอนนี้คุณจะเห็นวิธีเชื่อมต่อกับ MongoDB ที่แตกต่างกันสี่วิธี แต่เนื่องจากเราต้องการเชื่อมต่อกับแอปพลิเคชัน Node ให้เราเลือก Connect your application
ตัวเลือก:
จากนั้นคุณจะได้รับแจ้งให้เลือกวิธีการเชื่อมต่อ ที่นี่ ตรวจสอบให้แน่ใจว่าได้เลือก Node.js เป็นไดรเวอร์ของคุณ และเลือกเวอร์ชันที่เหมาะสม (ฉันใช้ 4.1 หรือใหม่กว่าในขณะที่เขียนบทความนี้)
นอกจากนี้เรายังแสดงสตริงการเชื่อมต่อซึ่งมีประโยชน์สำหรับการเชื่อมต่อคลัสเตอร์ MongoDB ของเรากับแอปพลิเคชัน Node:
ตอนนี้เราจำเป็นต้องสร้างแอปพลิเคชัน Node.js เพื่อเชื่อมต่อกับฐานข้อมูล MongoDB
การสร้างแอปพลิเคชันโหนด
ในไดเร็กทอรีที่คุณต้องการสำหรับโปรเจ็กต์นี้ ให้สร้างโฟลเดอร์ใหม่:
$ mkdir integrating-mongodb-node
จากนั้นวิ่ง npm init
ในเทอร์มินัลเพื่อเริ่มต้นแอปพลิเคชัน Node ด้วย package.json
ไฟล์ที่ทำให้เราสามารถติดตามการพึ่งพาแอปพลิเคชันได้:
$ npm init
package name: (codes) integrating-mongodb-node
version: (1.0.0)
description: learning how to connect mongodb to a node app
entry point: (server.js)
test command:
git repository:
keywords:
author:
Is this OK? (yes) yes
ดูคู่มือเชิงปฏิบัติสำหรับการเรียนรู้ Git ที่มีแนวทางปฏิบัติที่ดีที่สุด มาตรฐานที่ยอมรับในอุตสาหกรรม และเอกสารสรุปรวม หยุดคำสั่ง Googling Git และจริงๆ แล้ว เรียน มัน!
ตอนนี้เราได้เริ่มต้นเรียบร้อยแล้ว package.json
ให้เราดำเนินการติดตั้งแพ็คเกจสองชุดที่จะเป็นประโยชน์ในการสร้างเซิร์ฟเวอร์ของเรา อย่างแรกคือ Express.js ซึ่งเป็นเฟรมเวิร์กเว็บสำหรับการพัฒนาแอปพลิเคชัน Node ที่รวดเร็วและง่ายดาย:
$ yarn add express -D
แพ็คเกจที่สองที่เราจะติดตั้งคือแพ็คเกจ Mongoose ซึ่งจะช่วยให้เราสร้างสคีมาที่เหมาะสมสำหรับฐานข้อมูลของเราในแอป Node:
$ yarn add mongoose -D
เมื่อติดตั้งการพึ่งพาการพัฒนาที่จำเป็นเรียบร้อยแล้ว ตอนนี้เราสามารถเขียนโค้ดเพื่อเชื่อมต่อฐานข้อมูล MongoDB ของเรากับแอปพลิเคชัน Node ของเราได้
ในไดเร็กทอรีที่เราเพิ่งสร้างขึ้นสำหรับโปรเจ็กต์ ให้สร้างไฟล์ server.js
ไฟล์
$ touch server.js
ต่อไปเราจะกำหนดการตั้งค่าพื้นฐานสำหรับแอปพลิเคชัน Node server.js
โดยการสร้างเซิร์ฟเวอร์ด่วนอย่างง่าย
const express = require("express");
const mongoose = require("mongoose");
const app = express();
const port = 8000;
app.listen(port, () => {
console.log(`Server started at port ${port}`);
});
เราสามารถยืนยันได้ว่าเซิร์ฟเวอร์ของเราทำงานตามที่ควรจะเป็น โดยการรันโค้ดต่อไปนี้ในเทอร์มินัล
$ node server.js
ซึ่งจะส่งผลให้:
Server started at port 8000
ตอนนี้คุณสามารถกลับไปที่แดชบอร์ด MongoDB ของคุณเพื่อคัดลอก URI (Uniform Resource Idenfier) เพื่อเชื่อมต่อแอป Node กับฐานข้อมูล
I server.js
สร้างตัวแปรเพื่อจัดเก็บตัวระบุทรัพยากรแบบเดียวกัน และแทนที่ URI ด้วยรหัสผ่านของบัญชี MongoDB ของคุณ
const express = require("express");
const mongoose = require("mongoose");
const app = express();
const uri =
"mongodb+srv://UcheAzubuko:@stackabusecluster.fgavg5s.mongodb.net/?retryWrites=true&w=majority";
const port = 8000;
app.listen(port, () => {
console.log(`Server started at port ${port}`);
});
ต่อไป เราสร้างฟังก์ชันแบบอะซิงโครนัสเพื่อให้เราสามารถเชื่อมต่อกับ MongoDB ได้ เนื่องจากเราไม่รู้ว่าอาจใช้เวลานานเท่าใดก่อนที่ฟังก์ชันจะเสร็จสมบูรณ์ก่อนจะเชื่อมต่อกับฐานข้อมูล:
const express = require("express");
const mongoose = require("mongoose");
const app = express();
const uri =
"mongodb+srv://UcheAzubuko:@stackabusecluster.fgavg5s.mongodb.net/?retryWrites=true&w=majority";
async function connect() {
try {
await mongoose.connect(uri);
console.log("Connected to MongoDB");
} catch (error) {
console.log(error);
}
}
connect();
const port = 8000;
app.listen(port, () => {
console.log(`Server started at port ${port}`);
});
เราได้สร้างฟังก์ชันอะซิงโครนัสซึ่งบันทึกก Connected to MongoDB
ข้อความเมื่อสร้างการเชื่อมต่อระหว่าง MongoDB และแอป Node ได้สำเร็จ และบันทึกข้อผิดพลาดหากเกิดข้อผิดพลาด
ตอนนี้เราควรรีสตาร์ทเซิร์ฟเวอร์:
$ node server.js
และได้รับข้อความแจ้งว่าขณะนี้มีการสร้างการเชื่อมต่อที่ปลอดภัยระหว่างฐานข้อมูล MongoDB และแอปพลิเคชัน Node แล้ว:
Server started at port 8000
Connected to MongoDB
ณ จุดนี้ เมื่อคุณกลับไปที่แดชบอร์ดสำหรับคลัสเตอร์โปรเจ็กต์ของคุณ ตอนนี้คุณจะเห็นข้อมูลที่แสดงว่ามีการเชื่อมต่อกับฐานข้อมูลเมื่อเร็วๆ นี้:
เอาล่ะทุกคน แค่นั้นแหละ! เราได้รวมฐานข้อมูล MongoDB ภายในแอปพลิเคชัน Node.js เรียบร้อยแล้ว
สรุป
ในบทความนี้ เราได้เรียนรู้วิธีสร้างการเชื่อมต่อที่ปลอดภัยระหว่างแอปพลิเคชัน Node.js และฐานข้อมูล MongoDB ตอนนี้คุณสามารถทำเช่นเดียวกันได้อย่างง่ายดายเมื่อคุณต้องการสร้างแอปพลิเคชันโดยใช้ MongoDB ฐานข้อมูลที่ไม่เกี่ยวข้องซึ่งได้รับความนิยมอย่างมากในระบบนิเวศ
อย่าลืมว่า เอกสาร MongoDB เป็นเพื่อนที่ดีที่สุดของคุณในการเรียนรู้เกี่ยวกับ MongoDB และหากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างแอปพลิเคชัน Express โปรดติดต่อที่ เอกสารด่วน เกินไป
หากคุณติดขัดในขณะที่ปฏิบัติตามบทช่วยสอน คุณสามารถคิดทบทวนได้ตามใจชอบ GitHub repo สำหรับโครงการ เพื่อหาทางของคุณ