MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak zapisać moje dane w mongoDB za pomocą expressjs?

mangusta to framework, który ułatwia interakcję z MongoDB. Właściwie nigdy nie chcesz samodzielnie wykonywać całego schematu walidacji, rzutowania i logiki, więc po co wymyślać koło na nowo.
A skoro jesteś początkującym, nie bój się frameworków. Istnieje wiele przydatnych frameworków dla wielu obszarów backendu i frontendu, aby ułatwić Ci życie.

Artykuł, który udostępniłeś, nie wymaga wyjaśnień, ale podsumuję tylko część dotyczącą bazy danych dla ciebie (nie będę zagłębiać się w twój kod, żadna praca osła. reszta zależy od ciebie):

1) Przede wszystkim zainstaluj mangusty.

npm install mongoose

Artykuł ma --save którego nie trzeba już dodawać, jako „npm install domyślnie zapisuje określone pakiety w zależnościach."(ref. )

2) aby mieć dostęp i korzystać z mangusty , musisz go zaimportować w sposób węzłowy, czyli require() .

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

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

A co to jest parser ciała tam?
W przypadku ekspresowej bazy danych prędzej czy później natkniesz się na błędy, takie jak ten .
A powód, dla którego go potrzebujemy, najlepiej wyjaśnimy w tej odpowiedzi .
Ponadto najnowsze wersje Express mają teraz własny parser ciała, więc możesz użyć app.use(express.json()) zamiast app.use(bodyParser.json()) .
Ważne: body-parser musi znajdować się przed Twoimi trasami.

3) użyj mongoose.connect(url) .

url argument jest tym, co znajdziesz w swoim Atlasie MongoDB . :

Lokalizacja:zakładka klastry -> połącz -> podłącz aplikację -> sterownik node.js

Co daje coś takiego:

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

Ważne: używasz użytkownika i hasła użytkownika utworzonego w zakładce Dostęp do bazy danych, a nie własnego użytkownika i hasła.

Możesz skonfigurować zmienne środowiskowe, aby zabezpieczyć poufne i zmienne dane. Ale wolę używać config.js dla uproszczenia i który zwykle znajduje się w katalogu głównym aplikacji.

Nie tylko ty możesz je zabezpieczyć (jak przy użyciu .gitignore ), ale także łatwo je modyfikować, ponieważ istnieją zmienne, które mogą się zmieniać z jednego środowiska do drugiego, dzięki czemu są dostępne w jednym miejscu i łatwe do znalezienia, zamiast szukać ich zmiany w całej aplikacji.

Dla .env podejście do plików, przeczytaj ten artykuł .

Ważne: w przypadku, gdy chcesz umieścić swój kod na github lub w dowolnym miejscu online, z jakiego powodu używamy config.js , nie zapomnij dodać tego pliku w .gitignore aby uniknąć wycieku tak wrażliwych danych i ujawnienia ich innym osobom w Internecie.

w config.js możesz to zrobić:

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

Następnie zaimportuj je tak:

const { username, pass, myCluster } = require('./config'); <- ścieżka może być dla Ciebie inna!

Wskazówka: Możesz użyć back-tick (` ` ), aby łatwo wstawić te zmienne dla const url , poprzez interpolację .

Czyli:

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

Ważne: pamiętaj o dodaniu do białej listy Twój IP ze strony MongoDB (atlas), w przeciwnym razie pojawi się błąd połączenia. W ramach bezpieczeństwa :Dostęp do sieci -> Biała lista adresów IP
Możesz użyć 0.0.0.0/0 aby dodać wszystkie adresy IP do białej listy.
Również w przypadku korzystania z VPN , zmieni się również Twój adres IP.

4) ostatni, ale nie mniej ważny , po połączeniu się z bazą danych musisz zdefiniować swój schemat :

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

I

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

Wskazówka: Częstym błędem popełnianym przez wielu początkujących jest to, że zapomnieli użyć new :
new mongoose.Schema({...})

Jeśli chcesz utworzyć swój model w osobnym pliku (co jest najlepszą praktyką), będziesz musiał zmodyfikować swoje const Movies więc:

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

Nie zapomnij dodać const mongoose = require('mongoose'); w tym oddzielnym pliku modelu js.

W każdym miejscu, w którym chcesz użyć tego modelu, zaimportuj tak:

const Movies= require('../models/movies'); (ścieżka może być inna dla Twojej aplikacji)

Reszta, mój przyjacielu, należy do ciebie. Co chcesz zrobić ze swoją bazą danych i jak z niej korzystać.

Uwaga dla innych:poświęciłem temu tyle czasu i uwagi, kiedy to pisałem. Proszę, jeśli zauważysz coś nie tak lub uważasz, że możesz coś dodać, edytuj i ulepsz moją odpowiedź.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Projektuj tablicę obiektów do wartości klucza

  2. Nie można uruchomić usługi MongoDB 3.0.2 na CentOS 7

  3. Przechowuj ciąg Json jako tablicę MongoDB w C#

  4. Klient MongoDB zgłasza wyjątek FileNotFoundException w mscorlib

  5. MongoDB Aggregate Framework — grupowanie według roku