luwak adalah kerangka kerja yang memfasilitasi interaksi dengan MongoDB. Sebenarnya Anda pada dasarnya tidak pernah ingin melakukan semua validasi, casting, dan logika boilerplate sendiri, jadi mengapa menemukan kembali roda.
Dan karena Anda seorang pemula, jangan takut dengan kerangka kerja. Ada banyak kerangka kerja yang berguna untuk banyak area backend dan frontend untuk membuat hidup Anda lebih mudah.
Artikel yang Anda bagikan sudah cukup jelas, tetapi saya akan meringkas hanya bagian basis datanya untuk Anda (saya tidak akan masuk jauh ke dalam kode Anda, tidak ada pekerjaan keledai. sisanya terserah Anda):
1) Pertama-tama instal luwak.
npm install mongoose
Artikel memiliki --save
yang tidak perlu ditambahkan lagi, sebagai "npm install
menyimpan paket tertentu ke dalam dependensi secara default."(ref.
)
2) untuk dapat mengakses dan menggunakan luwak , Anda perlu mengimpornya, dengan cara simpul, yaitu require()
.
const express = require(‘express’)
const mongoose = require(“mongoose”);
const bodyParser = require(‘body-parser’);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
Dan apa itu body-parser di sana untuk?
Saat berurusan dengan database dalam ekspres, cepat atau lambat Anda akan menemukan kesalahan seperti yang ini
.
dan alasan mengapa kita membutuhkannya paling baik dijelaskan dalam jawaban ini .
Selain itu, versi terbaru dari express sekarang memiliki body parser sendiri, jadi Anda dapat menggunakan app.use(express.json())
alih-alih app.use(bodyParser.json())
.
Penting: body-parser harus sebelum rute Anda.
3) gunakan mongoose.connect(url)
.
url
argumen adalah apa yang Anda temukan di MongoDB Atlas . Anda . :
Lokasi:tab cluster -> sambungkan -> sambungkan aplikasi Anda -> driver node.js
Yang memberi Anda, sesuatu seperti ini:
mongodb+srv://<user>:<password>@,cluster>.mongodb.net/test?retryWrites=true&w=majority
Penting: Anda menggunakan pengguna dan kata sandi pengguna yang Anda buat di dalam tab Akses Basis Data, bukan pengguna dan kata sandi Anda sendiri.
Anda dapat mengatur variabel lingkungan Anda untuk mengamankan data sensitif dan dapat diubah. Tapi saya lebih suka menggunakan config.js
untuk kesederhanaan, dan yang biasanya berada di root app.
Tidak hanya Anda yang dapat mengamankannya (seperti menggunakan .gitignore
), tetapi juga dengan mudah memodifikasinya karena ada variabel yang mungkin berubah dari satu lingkungan ke lingkungan lain, membuatnya tersedia di satu tempat dan mudah ditemukan, alih-alih mencarinya untuk berubah di seluruh aplikasi Anda.
Untuk .env
pendekatan file, baca artikel ini
.
Penting: jika Anda ingin meletakkan kode Anda di github atau di mana saja secara online, salah satu alasan kami menggunakan config.js
, jangan lupa tambahkan file ini di .gitignore
untuk menghindari data sensitif tersebut bocor dan diekspos ke orang lain secara online.
di config.js
Anda dapat melakukannya:
exports.username = 'your user';
exports.pass = 'your pass';
exports.myCluster = 'your cluster's name';
Kemudian impor mereka jadi:
const { username, pass, myCluster } = require('./config');
<- jalannya mungkin berbeda untukmu!
Kiat: Anda dapat menggunakan tanda centang kembali (` `
) untuk dengan mudah memasukkan variabel-variabel tersebut untuk const url
, melalui interpolasi .
Yaitu:
const url = `mongodb+srv://${username}:${password},${myCluster}.mongodb.net/test?retryWrites=true&w=majority`
Penting: pastikan untuk masuk ke daftar putih IP . Anda dari sisi MongoDB (atlas), jika tidak, Anda akan mendapatkan kesalahan koneksi. Di bawah keamanan :Akses Jaringan -> Daftar Putih IP
Anda dapat menggunakan 0.0.0.0/0
untuk memasukkan semua IP ke daftar putih.
Juga, saat menggunakan VPN , IP Anda juga akan berubah.
4) terakhir tapi tidak kalah pentingnya , setelah terhubung ke database, Anda perlu mendefinisikan skema :
const moviesSchema = new mongoose.Schema({
title: String,
year: Number,
rating: Number
});
Dan
const Movies = mongoose.model(“Movies”, moviesSchema);
Kiat: Kesalahan umum yang dilakukan banyak pemula adalah mereka lupa menggunakan new
:new mongoose.Schema({...})
Jika Anda ingin membuat model Anda dalam file terpisah (yang merupakan praktik terbaik), Anda perlu memodifikasi const Movies
Anda jadi:
module.exports = mongoose.model(“Movies”, moviesSchema);
Jangan lupa tambahkan const mongoose = require('mongoose');
dalam file model js terpisah itu.
Dan di mana pun Anda ingin menggunakan model ini, Anda mengimpornya:
const Movies= require('../models/movies');
(jalur mungkin berbeda untuk aplikasi Anda)
Sisanya, teman saya, terserah Anda. Apa yang ingin Anda lakukan dengan database Anda dan bagaimana menggunakannya.
Catatan untuk orang lain:Saya mencurahkan begitu banyak waktu dan pikiran untuk ini saat saya menulis ini. Tolong, jika Anda melihat sesuatu yang salah, atau merasa Anda dapat menambahkan sesuatu, silakan edit dan perbaiki jawaban saya.