sql >> Databáze >  >> NoSQL >> MongoDB

Jak uložit svá data na mongoDB pomocí expressjs?

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.



  1. MongoDB se nerovná

  2. instalace mongodb-10gen se nezdařila pomocí apt-get

  3. Spouštění mongod fork, CHYBA:podřízený proces se nezdařil, ukončeno s chybou číslo 1

  4. Jak přeskupit karty a seznamy jako Trello?