sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur sparar jag mina data på mongoDB genom att använda expressjs?

mangus är ett ramverk som underlättar interaktion med MongoDB. Egentligen vill du i princip aldrig göra all validering, gjutning och logik på egen hand, så varför uppfinna hjulet på nytt.
Och eftersom du är nybörjare, var inte rädd för ramverk. Det finns många användbara ramverk för många områden av backend och frontend för att göra livet enklare för dig.

Artikeln du delade är självförklarande, men jag sammanfattar endast databasdelen för dig (jag går inte djupt in på din kod, inget åsnearbete. resten är upp till dig):

1) Installera först och främst mongoose.

npm install mongoose

Artikeln har --save som inte längre behöver läggas till, som "npm install sparar alla angivna paket i beroenden som standard."(ref. )

2) för att kunna komma åt och använda mongoose , måste du importera den på nodsätt, det vill säga require() .

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

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

Och vad är body-parser där för?
När du hanterar databas i express, kommer du förr eller senare att stöta på fel som denna .
och anledningen till att vi trots allt behöver en förklaras bäst i det här svaret .
De senaste versionerna av express har också sin egen kroppstolk nu, så du kan använda app.use(express.json()) istället för app.use(bodyParser.json()) .
Viktigt: body-parser måste vara före dina rutter.

3) använd mongoose.connect(url) .

url argument är vad du hittar i din MongoDB Atlas . :

Plats:fliken kluster -> anslut -> anslut din applikation -> drivrutin node.js

Vilket ger dig något sånt här:

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

Viktigt: du använder användaren och lösenordet för den användare du skapade på fliken Databasåtkomst, inte din egen användare och lösenord.

Du kan ställa in dina miljövariabler för att säkra känsliga och föränderliga data. Men jag föredrar att använda config.js för enkelhetens skull, och som vanligtvis finns i roten av appen.

Inte bara du kan säkra dem (som för att använda .gitignore ), men också enkelt modifiera dem eftersom det finns variabler som kan ändras från en miljö till en annan miljö, vilket gör dem tillgängliga på ett ställe och lätta att hitta, istället för att leta efter dem att ändra i hela din app.

För .env filmetoden, läs denna artikel .

Viktigt: om du vill lägga din kod i github eller någonstans online, vilket en anledning till att vi använder config.js , glöm inte att lägga till den här filen i .gitignore för att undvika att sådana känsliga uppgifter läcker ut och exponeras för andra på nätet.

i config.js du kan göra det:

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

Importera dem sedan så:

const { username, pass, myCluster } = require('./config'); <- vägen kan vara annorlunda för dig!

Tips: Du kan använda back-tick (` ` ) för att enkelt infoga dessa variabler för const url , genom interpolering .

Det vill säga:

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

Viktigt: se till att vitlista din IP från MongoDB-sidan (atlas), annars får du anslutningsfel. Under säkerhet :Nätverksåtkomst -> IP-vitlista
Du kan använda 0.0.0.0/0 för att vitlista alla IP-adresser.
Också när du använder VPN , din IP kommer också att ändras.

4) sist men inte minst , efter att ha anslutit till databasen måste du definiera ditt schema :

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

Och

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

Tips: Ett vanligt misstag många nybörjare gör är att de glömt att använda new :
new mongoose.Schema({...})

Om du vill skapa din modell i en separat fil (vilket är bästa praxis), måste du ändra dina const Movies alltså:

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

Glöm inte att lägga till const mongoose = require('mongoose'); i den separata js-modellfilen.

Och var du än vill använda den här modellen importerar du så:

const Movies= require('../models/movies'); (sökvägen kan vara annorlunda för din app)

Resten, min vän, är upp till dig. Vad du vill göra med din databas och hur du använder den.

Anmärkning till andra:Jag lade så mycket tid och sinne på det här när jag skrev det här. Snälla, om du ser något fel eller tror att du kan lägga till något får du gärna redigera och förbättra mitt svar.



  1. Nodejs prestandaoptimering

  2. MongoDB tillåter inte användning av '.' i nyckel

  3. docker-compose java-applikationsanslutning till mongodb

  4. Docker-compose och mongoDB:Det gick inte att starta WiredTiger under någon kompatibilitetsversion?