MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để lưu dữ liệu của tôi trên mongoDB bằng cách sử dụng expressjs?

cầy mangut là một khuôn khổ tạo điều kiện cho việc tương tác với MongoDB. Trên thực tế, về cơ bản bạn không bao giờ muốn tự mình thực hiện tất cả việc xác thực, đúc và logic, vậy tại sao phải phát minh lại bánh xe.
Và vì bạn là người mới bắt đầu, đừng sợ các khuôn khổ. Có rất nhiều khuôn khổ hữu ích cho nhiều lĩnh vực phụ trợ và giao diện người dùng để làm cho cuộc sống của bạn dễ dàng hơn.

Bài mình chia sẻ mang tính chất giải thích tuy nhiên mình sẽ tổng hợp chỉ phần cơ sở dữ liệu cho bạn (Tôi sẽ không đi sâu vào mã của bạn, không có công việc lừa gạt. Phần còn lại là tùy thuộc vào bạn):

1) Trước hết hãy cài đặt mongoose.

npm install mongoose

Bài viết có --save không cần thêm nữa, là "npm install theo mặc định, lưu mọi gói được chỉ định thành các gói phụ thuộc. "( ref. )

2) để có thể truy cập và sử dụng mongoose , bạn cần nhập nó, theo cách nút, đó là require() .

const express = require(‘express’)
const mongoose = require(“mongoose”);
const bodyParser = require(‘body-parser’);  

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true })); 

body-parser là gì ở đó cho?
Khi xử lý cơ sở dữ liệu trong express, sớm muộn gì bạn cũng gặp phải các lỗi như cái này .
và lý do tại sao chúng ta cần một cái sau cùng được giải thích rõ nhất trong câu trả lời này .
Ngoài ra, các phiên bản express gần đây đã có trình phân tích cú pháp nội dung riêng của nó, vì vậy bạn có thể sử dụng app.use(express.json()) thay vì app.use(bodyParser.json()) .
Quan trọng: phân tích cú pháp cơ thể phải ở trước các tuyến đường của bạn.

3) sử dụng mongoose.connect(url) .

url đối số là những gì bạn tìm thấy trong MongoDB Atlas của mình . :

Vị trí:tab cụm -> kết nối -> kết nối ứng dụng của bạn -> trình điều khiển node.js

Điều này mang lại cho bạn, một cái gì đó như thế này:

mongodb+srv://<user>:<password>@,cluster>.mongodb.net/test?retryWrites=true&w=majority

Quan trọng: bạn sử dụng người dùng và mật khẩu của người dùng bạn đã tạo trong tab Truy cập Cơ sở dữ liệu, không phải người dùng và mật khẩu của riêng bạn.

Bạn có thể thiết lập các biến môi trường của mình để bảo mật dữ liệu nhạy cảm và có thể thay đổi. Nhưng tôi thích sử dụng config.js vì sự đơn giản và thường nằm trong thư mục gốc của ứng dụng.

Bạn không chỉ có thể bảo mật chúng (như sử dụng .gitignore ), nhưng cũng dễ dàng sửa đổi chúng vì có các biến có thể thay đổi từ môi trường này sang môi trường khác, làm cho chúng có sẵn ở một nơi và dễ tìm, thay vì tìm kiếm chúng để thay đổi trên ứng dụng của bạn.

Đối với .env cách tiếp cận tệp, hãy đọc bài viết này .

Quan trọng: trong trường hợp bạn muốn đặt mã của mình trong github hoặc bất kỳ nơi nào trực tuyến, đó là lý do chúng tôi sử dụng config.js , đừng quên thêm tệp này vào .gitignore để tránh những dữ liệu nhạy cảm như vậy bị rò rỉ và bị lộ cho những người khác trực tuyến.

trong config.js bạn có thể làm như vậy:

exports.username = 'your user';
exports.pass = 'your pass';
exports.myCluster = 'your cluster's name';

Sau đó nhập chúng để:

const { username, pass, myCluster } = require('./config'); <- con đường có thể khác với bạn!

Mẹo: Bạn có thể sử dụng back-tick (` ` ) để dễ dàng chèn các biến đó cho const url , thông qua nội suy .

Đó là:

const url = `mongodb+srv://${username}:${password},${myCluster}.mongodb.net/test?retryWrites=true&w=majority`

Quan trọng: đảm bảo đưa vào danh sách trắng IP của bạn từ phía MongoDB (tập bản đồ), nếu không bạn sẽ gặp lỗi kết nối.Dưới bảo mật : Truy cập mạng -> Danh sách trắng IP
Bạn có thể sử dụng 0.0.0.0/0 để đưa tất cả IP vào danh sách trắng.
Ngoài ra, khi sử dụng VPN , IP của bạn cũng sẽ thay đổi.

4) cuối cùng nhưng không kém phần quan trọng , sau khi kết nối với cơ sở dữ liệu, bạn cần xác định lược đồ của mình :

const moviesSchema = new mongoose.Schema({
title: String,
year: Number,
rating: Number
});

const Movies = mongoose.model(“Movies”, moviesSchema);

Mẹo: Một lỗi phổ biến mà nhiều người mới mắc phải là họ quên sử dụng new :
new mongoose.Schema({...})

Nếu bạn muốn tạo mô hình của mình trong một tệp riêng (đó là cách tốt nhất), bạn sẽ cần sửa đổi const Movies của mình vì vậy:

module.exports = mongoose.model(“Movies”, moviesSchema);

Đừng quên thêm const mongoose = require('mongoose'); trong tệp mô hình js riêng biệt đó.

Và ở bất cứ nơi nào bạn sử dụng muốn sử dụng mô hình này, bạn nhập như vậy:

const Movies= require('../models/movies'); (đường dẫn có thể khác đối với ứng dụng của bạn)

Phần còn lại, bạn của tôi, là tùy thuộc vào bạn. Bạn muốn làm gì với cơ sở dữ liệu của mình và cách sử dụng nó.

Lưu ý cho những người khác:Tôi đã dành rất nhiều thời gian và tâm trí cho việc này khi viết bài này. Vui lòng, nếu bạn thấy điều gì đó sai hoặc nghĩ rằng bạn có thể thêm điều gì đó, vui lòng chỉnh sửa và cải thiện câu trả lời của tôi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Các mảng được lưu trữ trong MongoDB có giữ thứ tự của chúng không?

  2. mongodb làm thế nào để truy vấn với toán tử nand?

  3. Lưu mảng numpy trong mongodb

  4. BSON ::ObjectId so với Mongo ::ObjectID

  5. Điền các trường cụ thể trong $ lookup