sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan gemmer jeg mine data på mongoDB ved at bruge expressjs?

mangust er en ramme, der letter interaktion med MongoDB. Faktisk vil du dybest set aldrig lave al valideringen, støbningen og logikken på egen hånd, så hvorfor genopfinde hjulet.
Og da du er nybegynder, skal du ikke være bange for rammer. Der er mange nyttige rammer for mange områder af backend og frontend for at gøre livet lettere for dig.

Den artikel, du delte, er selvforklarende, men jeg vil opsummere kun databasedelen for dig (jeg vil ikke gå dybt ind i din kode, intet æselarbejde. resten er op til dig):

1) Først og fremmest skal du installere mongoose.

npm install mongoose

Artiklen har --save som ikke længere er nødvendigt at tilføje, som "npm install gemmer alle specificerede pakker i afhængigheder som standard."(ref. )

2) at få adgang til og bruge mongoose , skal du importere det på nodemåde, dvs. require() .

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

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

Og hvad er body-parser der for?
Når du beskæftiger dig med database i ekspres, vil du før eller siden støde på fejl som denne .
og grunden til, at vi trods alt har brug for en, er bedst forklaret i dette svar .
De seneste versioner af express har også sin egen body-parser nu, så du kan bruge app.use(express.json()) i stedet for app.use(bodyParser.json()) .
Vigtigt: body-parser skal være før dine ruter.

3) brug mongoose.connect(url) .

url argument er, hvad du finder i dit MongoDB Atlas . :

Placering:fanen klynger -> opret forbindelse -> tilslut din applikation -> driver node.js

Hvilket giver dig noget som dette:

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

Vigtigt: du bruger bruger og adgangskode for den bruger, du har lavet på fanen Databaseadgang, ikke din egen bruger og adgangskode.

Du kan opsætte dine miljøvariabler for at sikre følsomme og foranderlige data. Men jeg foretrækker at bruge config.js for nemheds skyld, og som normalt ligger i roden af ​​app.

Ikke kun du kan sikre dem (som for at bruge .gitignore ), men også nemt ændre dem, da der er variabler, der kan ændre sig fra et miljø til et andet miljø, hvilket gør dem tilgængelige ét sted og nemme at finde, i stedet for at lede efter dem til at ændre i hele din app.

For .env filtilgang, læs denne artikel .

Vigtigt: i tilfælde af at du vil lægge din kode i github eller hvor som helst online, hvilket er en af ​​grundene til at vi bruger config.js , glem ikke at tilføje denne fil i .gitignore for at undgå, at sådanne følsomme data bliver lækket og udsat for andre online.

i config.js du kan gøre det:

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

Importer dem så:

const { username, pass, myCluster } = require('./config'); <- stien kan være anderledes for dig!

Tip: Du kan bruge back-tick (` ` ) for nemt at indsætte disse variabler for const url , gennem interpolation .

Det vil sige:

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

Vigtigt: sørg for at hvidliste din IP fra MongoDB side (atlas), ellers vil du få forbindelsesfejl.Under sikkerhed :Netværksadgang -> IP-hvidliste
Du kan bruge 0.0.0.0/0 for at hvidliste alle IP'er.
Også når du bruger VPN , vil din IP også ændre sig.

4) sidst men ikke mindst , efter at have oprettet forbindelse til databasen, skal du definere dit skema :

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

Og

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

Tip: En almindelig fejl, som mange nybegyndere begår, er, at de har glemt at bruge new :
new mongoose.Schema({...})

Hvis du vil oprette din model i en separat fil (hvilket er den bedste praksis), skal du ændre dine const Movies så:

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

Glem ikke at tilføje const mongoose = require('mongoose'); i den separate js-modelfil.

Og hvor end du bruger vil bruge denne model, importerer du så:

const Movies= require('../models/movies'); (stien kan være anderledes for din app)

Resten, min ven, er op til dig. Hvad du vil gøre med din database, og hvordan du bruger den.

Bemærkning til andre:Jeg brugte så meget tid og sind på dette, da jeg skrev dette. Venligst, hvis du ser noget forkert, eller tror du kan tilføje noget, er du velkommen til at redigere og forbedre mit svar.



  1. Hvordan kan jeg importere data til Mongodb fra Json-fil ved hjælp af java

  2. at bruge :=giver ubrugt fejl, men ved at bruge =ikke i Go

  3. Hvordan kan jeg oprette et automatisk stigningsfelt på meteor?

  4. Sådan fanges undtagelse, når du opretter MongoClient-instans