Mengungkapkan menyimpan data ke mongodb

Sebelum kita beralih ke topik utama mempertahankan data dalam database, kita akan melihat beberapa cara berbeda untuk men-debug aplikasi Node

Men-debug aplikasi Node

Men-debug aplikasi Node sedikit lebih sulit daripada men-debug JavaScript yang berjalan di browser Anda. Mencetak ke konsol adalah metode yang dicoba dan benar, dan selalu layak dilakukan. Beberapa orang berpikir bahwa metode yang lebih canggih harus digunakan, tetapi saya tidak setuju. Bahkan pengembang sumber terbuka elit dunia menggunakan metode ini

Kode Visual Studio

Debugger Kode Visual Studio dapat berguna dalam beberapa situasi. Anda dapat meluncurkan aplikasi dalam mode debugging seperti ini

Mengungkapkan menyimpan data ke mongodb

Perhatikan bahwa aplikasi tidak boleh berjalan di konsol lain, jika tidak, port tersebut sudah digunakan

NB Versi yang lebih baru dari Visual Studio Code mungkin memiliki Run, bukan Debug. Selain itu, Anda mungkin harus mengonfigurasi peluncuran Anda. file json untuk memulai debug. Ini dapat dilakukan dengan memilih Tambah Konfigurasi. pada menu drop-down, yang terletak di sebelah tombol play berwarna hijau dan di atas menu VARIABLES, dan pilih Run "npm start" di terminal debug. Untuk petunjuk penyiapan yang lebih mendetail, kunjungi dokumentasi Debugging Visual Studio Code

Di bawah ini Anda dapat melihat tangkapan layar di mana eksekusi kode telah dijeda di tengah menyimpan catatan baru

Mengungkapkan menyimpan data ke mongodb

Eksekusi berhenti di breakpoint di baris 69. Di konsol, Anda dapat melihat nilai dari variabel note. Di jendela kiri atas, Anda dapat melihat hal-hal lain yang terkait dengan status aplikasi

Panah di bagian atas dapat digunakan untuk mengontrol aliran debugger

Untuk beberapa alasan, saya tidak banyak menggunakan debugger Visual Studio Code

Alat pengembang Chrome

Debugging juga dimungkinkan dengan konsol pengembang Chrome dengan memulai aplikasi Anda dengan perintah

Anda dapat mengakses debugger dengan mengeklik ikon hijau - logo simpul - yang muncul di konsol pengembang Chrome

Mengungkapkan menyimpan data ke mongodb

Tampilan debug bekerja dengan cara yang sama seperti pada aplikasi React. Tab Sumber dapat digunakan untuk menyetel breakpoint di mana eksekusi kode akan dijeda

Mengungkapkan menyimpan data ke mongodb

Semua konsol aplikasi. pesan log akan muncul di tab Konsol dari debugger. Anda juga dapat memeriksa nilai variabel dan menjalankan kode JavaScript Anda sendiri

Mengungkapkan menyimpan data ke mongodb

Pertanyakan semuanya

Men-debug aplikasi Full Stack mungkin tampak rumit pada awalnya. Sebentar lagi aplikasi kita juga akan memiliki database selain frontend dan backend, dan akan banyak area potensial bug di aplikasi

Saat aplikasi "tidak berfungsi", pertama-tama kita harus mencari tahu di mana masalah sebenarnya terjadi. Sangat umum jika masalah muncul di tempat yang tidak Anda duga, dan dapat memakan waktu beberapa menit, jam, atau bahkan berhari-hari sebelum Anda menemukan sumber masalahnya.

Kuncinya adalah sistematis. Karena masalah bisa ada di mana saja, Anda harus mempertanyakan semuanya, dan menghilangkan semua kemungkinan satu per satu. Masuk ke konsol, tukang pos, debugger, dan pengalaman akan membantu

Ketika bug terjadi, kemungkinan terburuk dari semua strategi adalah terus menulis kode. Ini akan menjamin bahwa kode Anda akan segera memiliki lebih banyak bug, dan men-debugnya akan menjadi lebih sulit. Prinsip stop and fix dari Toyota Production Systems juga sangat efektif dalam situasi ini

MongoDB

Untuk menyimpan catatan yang kita simpan tanpa batas waktu, kita membutuhkan database. Sebagian besar mata kuliah yang diajarkan di Universitas Helsinki menggunakan basis data relasional. Di sebagian besar kursus ini, kita akan menggunakan MongoDB yang disebut database dokumen

Alasan menggunakan Mongo sebagai basis data adalah kompleksitasnya yang lebih rendah dibandingkan dengan basis data relasional. Bagian 13 dari kursus ini menunjukkan cara membangun node. backend js yang menggunakan database relasional

Database dokumen berbeda dari database relasional dalam cara mereka mengatur data serta dalam bahasa kueri yang didukungnya. Database dokumen biasanya dikategorikan dalam istilah payung NoSQL

Anda dapat membaca lebih lanjut tentang database dokumen dan NoSQL dari materi kursus untuk minggu ke 7 kursus Pengantar Database. Sayangnya, materi tersebut saat ini hanya tersedia dalam bahasa Finlandia

Baca sekarang bab tentang koleksi dan dokumen dari manual MongoDB untuk mendapatkan ide dasar tentang bagaimana database dokumen menyimpan data

Secara alami, Anda dapat menginstal dan menjalankan MongoDB di komputer Anda. Namun, internet juga penuh dengan layanan database Mongo yang dapat Anda gunakan. Penyedia MongoDB pilihan kami dalam kursus ini adalah MongoDB Atlas

Setelah Anda membuat dan masuk ke akun Anda, mari kita mulai dengan memilih opsi gratis

Mengungkapkan menyimpan data ke mongodb

Pilih penyedia dan lokasi cloud, lalu buat cluster

Mengungkapkan menyimpan data ke mongodb

Mari kita tunggu cluster siap digunakan. Ini bisa memakan waktu beberapa menit

NB jangan lanjutkan sebelum cluster siap

Mari gunakan tab keamanan untuk membuat kredensial pengguna untuk database. Harap perhatikan bahwa ini bukan kredensial yang sama yang Anda gunakan untuk masuk ke MongoDB Atlas. Ini akan digunakan untuk aplikasi Anda untuk terhubung ke database

Mengungkapkan menyimpan data ke mongodb

Selanjutnya, kita harus menentukan alamat IP yang diizinkan mengakses database. Demi kesederhanaan, kami akan mengizinkan akses dari semua alamat IP

Mengungkapkan menyimpan data ke mongodb

Akhirnya, kami siap untuk terhubung ke database kami. Mulailah dengan mengklik hubungkan

Mengungkapkan menyimpan data ke mongodb

dan pilih. Hubungkan aplikasi Anda

Mengungkapkan menyimpan data ke mongodb

Tampilan menampilkan URI MongoDB, yang merupakan alamat database yang akan kami berikan ke perpustakaan klien MongoDB yang akan kami tambahkan ke aplikasi kami

Alamatnya terlihat seperti ini

mongodb+srv://fullstack:@cluster0.o1opl.mongodb.net/?retryWrites=true&w=majority

Kami sekarang siap untuk menggunakan database

Kami dapat menggunakan database langsung dari kode JavaScript kami dengan Node MongoDB resmi. js driver, tetapi cukup rumit untuk digunakan. Sebagai gantinya, kami akan menggunakan pustaka Mongoose yang menawarkan API tingkat lebih tinggi

Mongoose dapat dideskripsikan sebagai object document mapper (ODM), dan menyimpan objek JavaScript sebagai dokumen Mongo sangatlah mudah dengan library ini

Ayo instal Mongoose

Jangan tambahkan kode apa pun yang berhubungan dengan Mongo ke backend kita dulu. Sebagai gantinya, mari buat aplikasi latihan dengan membuat file baru, mongo. js

const mongoose = require('mongoose')

if (process.argv.length<3) {
  console.log('give password as argument')
  process.exit(1)
}

const password = process.argv[2]

const url =
  `mongodb+srv://fullstack:${password}@cluster0.o1opl.mongodb.net/?retryWrites=true&w=majority`

mongoose.set('strictQuery',false)
mongoose.connect(url)

const noteSchema = new mongoose.Schema({
  content: String,
  important: Boolean,
})

const Note = mongoose.model('Note', noteSchema)

const note = new Note({
  content: 'HTML is Easy',
  important: true,
})

note.save().then(result => {
  console.log('note saved!')
  mongoose.connection.close()
})
_

NB. Bergantung pada wilayah mana yang Anda pilih saat membangun klaster, URI MongoDB mungkin berbeda dari contoh yang diberikan di atas. Anda harus memverifikasi dan menggunakan URI yang benar yang dihasilkan dari MongoDB Atlas

Kode juga mengasumsikan bahwa kata sandi dari kredensial yang kami buat di MongoDB Atlas akan diteruskan, sebagai parameter baris perintah. Kita dapat mengakses parameter baris perintah seperti ini

const password = process.argv[2]

Saat kode dijalankan dengan perintah node mongo. js kata sandi, Mongo akan menambahkan dokumen baru ke database

NB. Harap perhatikan kata sandi adalah kata sandi yang dibuat untuk pengguna basis data, bukan kata sandi MongoDB Atlas Anda. Selain itu, jika Anda membuat kata sandi dengan karakter khusus, Anda harus melakukannya

Kita dapat melihat status database saat ini dari MongoDB Atlas dari koleksi Browse, di tab Database

Mengungkapkan menyimpan data ke mongodb

Seperti yang dinyatakan tampilan, dokumen yang cocok dengan catatan telah ditambahkan ke koleksi catatan di database myFirstDatabase

Mengungkapkan menyimpan data ke mongodb

Mari hancurkan pengujian database default dan ubah nama database yang direferensikan dalam string koneksi kita menjadi noteApp, dengan memodifikasi URI

const url =
  `mongodb+srv://fullstack:${password}@cluster0.o1opl.mongodb.net/noteApp?retryWrites=true&w=majority`

Mari jalankan kode kita lagi

Mengungkapkan menyimpan data ke mongodb

Data sekarang disimpan dalam database yang tepat. Tampilan ini juga menawarkan fungsionalitas buat basis data, yang dapat digunakan untuk membuat basis data baru dari situs web. Membuat database seperti ini tidak diperlukan, karena MongoDB Atlas secara otomatis membuat database baru ketika aplikasi mencoba terhubung ke database yang belum ada

Skema

Setelah membuat koneksi ke database, kami menentukan skema untuk catatan dan model yang cocok

const noteSchema = new mongoose.Schema({
  content: String,
  important: Boolean,
})

const Note = mongoose.model('Note', noteSchema)
_

Pertama, kita mendefinisikan skema catatan yang disimpan dalam variabel noteSchema. Skema memberi tahu Mongoose bagaimana objek note disimpan dalam database

Dalam definisi model Note, parameter "Note" pertama adalah nama tunggal model. Nama koleksi akan menjadi catatan jamak huruf kecil, karena konvensi Mongoose adalah untuk secara otomatis menamai koleksi sebagai jamak (e. g. catatan) ketika skema mengacu pada mereka dalam bentuk tunggal (mis. g. Catatan)

Basis data dokumen seperti Mongo tidak memiliki skema, artinya basis data itu sendiri tidak peduli dengan struktur data yang disimpan dalam basis data. Dimungkinkan untuk menyimpan dokumen dengan bidang yang sangat berbeda dalam koleksi yang sama

Gagasan di balik Mongoose adalah bahwa data yang disimpan dalam basis data diberi skema pada tingkat aplikasi yang menentukan bentuk dokumen yang disimpan dalam koleksi tertentu.

Membuat dan menyimpan objek

Selanjutnya, aplikasi membuat objek note baru dengan bantuan model Note

const note = new Note({
  content: 'HTML is Easy',
  important: false,
})

Model disebut fungsi konstruktor yang membuat objek JavaScript baru berdasarkan parameter yang disediakan. Karena objek dibuat dengan fungsi konstruktor model, mereka memiliki semua properti model, termasuk metode untuk menyimpan objek ke database

Menyimpan objek ke database terjadi dengan metode penyimpanan yang diberi nama dengan tepat, yang dapat disediakan dengan penanganan kejadian dengan metode then

note.save().then(result => {
  console.log('note saved!')
  mongoose.connection.close()
})
_

Saat objek disimpan ke database, event handler yang disediakan kemudian dipanggil. Event handler menutup koneksi database dengan perintah mongoose.connection.close(). Jika koneksi tidak ditutup, program tidak akan pernah menyelesaikan eksekusinya

Hasil dari operasi penyimpanan ada di parameter result dari event handler. Hasilnya tidak begitu menarik ketika kita menyimpan satu objek di database. Anda dapat mencetak objek ke konsol jika Anda ingin melihatnya lebih dekat saat mengimplementasikan aplikasi Anda atau selama proses debug

Mari kita simpan juga beberapa catatan lagi dengan memodifikasi data dalam kode dan dengan menjalankan program lagi

NB. Sayangnya dokumentasi Mongoose tidak terlalu konsisten, dengan bagian-bagiannya menggunakan panggilan balik dalam contoh-contohnya dan bagian lainnya, gaya lain, jadi tidak disarankan untuk menyalin dan menempelkan kode langsung dari sana. Mencampur janji dengan panggilan balik jadul dalam kode yang sama tidak disarankan

Mengambil objek dari database

Mari beri komentar kode untuk menghasilkan catatan baru dan ganti dengan yang berikut ini

Note.find({}).then(result => {
  result.forEach(note => {
    console.log(note)
  })
  mongoose.connection.close()
})

Saat kode dieksekusi, program mencetak semua catatan yang disimpan dalam database

Mengungkapkan menyimpan data ke mongodb

Objek diambil dari database dengan metode model Note. Parameter metode ini adalah objek yang mengekspresikan kondisi pencarian. Karena parameternya adalah objek kosong{}, kita mendapatkan semua catatan yang disimpan dalam kumpulan catatan

Bagaimana cara mengirim data dari Express ke MongoDB?

Menghubungkan ke Database . Kita perlu menginstal modul mongoose seperti yang kita lakukan dengan express. Pergi ke terminal Anda dan masukkan perintah berikut. Ini akan menginstal model luwak dan menambahkannya sebagai dependensi dalam paket kami. use a module called Mongoose. We will need to install mongoose module just like we did with express. Go to your terminal and enter the following command. This will install the mongoose model and add it as a dependency in our package.

Bagaimana cara menyimpan data ke MongoDB?

Untuk menyimpan data ke dalam database, kita perlu membuat instance baru dari model yang kita buat sebelumnya. Kami akan meneruskan input pengguna ke instance ini. Setelah kita memilikinya maka kita tinggal memasukkan perintah "save" . Mongoose akan mengembalikan janji pada penyimpanan ke database.

Bagaimana cara menyimpan data di MongoDB dari Nodejs?

Siapkan .
Instal Node. js. .
Instal Node MongoDB. js Sopir. .
Buat klaster MongoDB Atlas gratis dan muat data sampel. Selanjutnya, Anda memerlukan database MongoDB. .
Dapatkan info koneksi cluster Anda. .
Impor Klien Mongo. .
Buat fungsi utama kita. .
Buat daftar database di cluster kami. .
Simpan File Anda

Bagaimana cara mengirim data ke MongoDB?

Untuk menyisipkan record, atau dokumen seperti yang disebut di MongoDB, ke dalam koleksi, kita menggunakan metode insertOne() . Parameter pertama metode insertOne() adalah objek yang berisi nama dan nilai dari setiap bidang dalam dokumen yang ingin Anda sisipkan.