mangusta je framework, který usnadňuje interakci s MongoDB. Ve skutečnosti v podstatě nikdy nechcete dělat všechny validace, casting a logiku sami, tak proč znovu vymýšlet kolo.
A protože jste začátečník, nebojte se frameworků. Existuje mnoho užitečných frameworků pro mnoho oblastí backendu a frontendu, které vám usnadní život.
Článek, který jste sdíleli, je samozřejmý, ale shrnu pouze databázovou část pro vás (nebudu zacházet hluboko do vašeho kódu, žádná práce osla. zbytek je na vás):
1) Nejprve nainstalujte mongoose.
npm install mongoose
Článek má --save
který již není třeba přidávat jako "npm install
ve výchozím nastavení uloží všechny zadané balíčky do závislostí."(ref.
)
2) mít přístup a používat mongoose , musíte jej importovat způsobem uzlu, tedy 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 je analyzátor těla tam pro?
Při práci s databází v expresním režimu dříve nebo později narazíte na chyby jako toto
.
a důvod, proč ho nakonec potřebujeme, je nejlépe vysvětlen v této odpovědi .
Nejnovější verze Express mají nyní také vlastní analyzátor těla, takže můžete použít app.use(express.json())
místo app.use(bodyParser.json())
.
Důležité: body-parser musí být před vašimi trasami.
3) použijte mongoose.connect(url)
.
url
argument je to, co najdete ve svém Atlasu MongoDB . :
Umístění:karta clustery -> připojit -> připojit vaši aplikaci -> ovladač node.js
Což vám dává něco takového:
mongodb+srv://<user>:<password>@,cluster>.mongodb.net/test?retryWrites=true&w=majority
Důležité: používáte uživatele a heslo uživatele, které jste vytvořili na kartě Přístup k databázi, nikoli svého vlastního uživatele a heslo.
Proměnné prostředí můžete nastavit pro zabezpečení citlivých a měnitelných dat. Ale raději používám config.js
pro jednoduchost a který se obvykle nachází v kořenovém adresáři aplikace.
Nejen, že je můžete zabezpečit (například pomocí .gitignore
), ale také je snadno upravujte, protože existují proměnné, které se mohou z jednoho prostředí do druhého měnit, takže je zpřístupníte na jednom místě a snadno je najdete, místo abyste je hledali, aby se změnily v celé aplikaci.
Pro .env
souborový přístup, přečtěte si tento článek
.
Důležité: v případě, že chcete vložit svůj kód do githubu nebo kamkoli online, což je jeden z důvodů, proč používáme config.js
, nezapomeňte tento soubor přidat do .gitignore
aby se zabránilo úniku takových citlivých dat a jejich vystavení ostatním online.
v config.js
můžete tak učinit:
exports.username = 'your user';
exports.pass = 'your pass';
exports.myCluster = 'your cluster's name';
Poté je importujte takto:
const { username, pass, myCluster } = require('./config');
<- cesta může být pro vás jiná!
Tip: Můžete použít zpětné zaškrtnutí (` `
), abyste mohli tyto proměnné snadno vložit do const url
, prostřednictvím interpolace .
To je:
const url = `mongodb+srv://${username}:${password},${myCluster}.mongodb.net/test?retryWrites=true&w=majority`
Důležité: nezapomeňte na seznam povolených vaši IP ze strany MongoDB (atlas), jinak se zobrazí chyba připojení. V části zabezpečení :Přístup k síti -> Seznam povolených IP adres
Mohli byste použít 0.0.0.0/0
na seznam povolených všech IP adres.
Také při použití VPN , změní se i vaše IP.
4) v neposlední řadě , po připojení k databázi musíte definovat své schéma :
const moviesSchema = new mongoose.Schema({
title: String,
year: Number,
rating: Number
});
A
const Movies = mongoose.model(“Movies”, moviesSchema);
Tip: Častou chybou mnoha nováčků je, že zapomněli použít new
:new mongoose.Schema({...})
Pokud chcete vytvořit model v samostatném souboru (což je nejlepší postup), budete muset upravit const Movies
takže:
module.exports = mongoose.model(“Movies”, moviesSchema);
Nezapomeňte přidat const mongoose = require('mongoose');
v tomto samostatném souboru modelu js.
A kdekoli, kde chcete tento model používat, importujete takto:
const Movies= require('../models/movies');
(cesta se může pro vaši aplikaci lišit)
Zbytek, příteli, je na tobě. Co chcete s databází dělat a jak ji používat.
Poznámka pro ostatní:Když jsem to psal, věnoval jsem tomu tolik času a mysli. Prosím, pokud vidíte něco špatně, nebo si myslíte, že byste mohli něco přidat, neváhejte moji odpověď upravit a vylepšit.