MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да запазя данните си в mongoDB с помощта на expressjs?

мангуста е рамка, която улеснява взаимодействието с MongoDB. Всъщност никога не искате да правите сами цялата проверка, кастинг и логически шаблон, така че защо да преоткривате колелото.
И тъй като сте начинаещ, не се страхувайте от рамки. Има много полезни рамки за много области на бекенда и предния край, които да улеснят живота ви.

Статията, която споделихте, се обяснява сама по себе си, но ще обобщя само частта от базата данни за вас (няма да навлизам дълбоко в кода ви, без магарешка работа. останалото зависи от вас):

1) Първо инсталирайте mongoose.

npm install mongoose

Статията има --save което вече не е необходимо да добавяте, като „npm install записва всички посочени пакети в зависимости по подразбиране."(ref. )

2) за достъп и използване на mongoose , трябва да го импортирате по начин на възел, който е require() .

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

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

И какво е body-parser има за какво?
Когато работите с база данни в Express, рано или късно ще попаднете на грешки като този .
и причината, поради която все пак имаме нужда от такъв, е най-добре обяснена в този отговор .
Освен това последните версии на express вече имат собствен синтактичен анализатор на тялото, така че можете да използвате app.use(express.json()) вместо app.use(bodyParser.json()) .
Важно: body-parser трябва да е преди вашите маршрути.

3) използвайте mongoose.connect(url) .

url аргумент е това, което намирате във вашия MongoDB Atlas . :

Местоположение:раздел клъстери -> свързване -> свързване на вашето приложение -> драйвер node.js

Което ви дава нещо подобно:

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

Важно: използвате потребител и парола на потребителя, който сте направили в раздела за достъп до база данни, а не вашия собствен потребител и парола.

Можете да настроите променливите на вашата среда, за да защитите чувствителни и променливи данни. Но предпочитам да използвам config.js за простота и който обикновено се намира в корена на приложението.

Не само вие можете да ги защитите (например за използване на .gitignore ), но също така лесно да ги модифицирате, тъй като има променливи, които могат да се променят от една среда в друга, което ги прави достъпни на едно място и лесни за намиране, вместо да ги търсите за промяна в цялото ви приложение.

За .env файлов подход, прочетете тази статия .

Важно: в случай че искате да поставите кода си в github или където и да е онлайн, поради която използваме config.js , не забравяйте да добавите този файл в .gitignore за да избегнете изтичането на такива чувствителни данни и излагането им на други онлайн.

в config.js можете да направите това:

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

След това ги импортирайте така:

const { username, pass, myCluster } = require('./config'); <- пътят може да е различен за вас!

Съвет: Можете да използвате обратна отметка (` ` ), за да вмъкнете лесно тези променливи за const url , чрез интерполация .

Тоест:

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

Важно: уверете се, че сте в белия списък вашият IP от страна на MongoDB (атлас), в противен случай ще получите грешка при свързване. Под сигурност :Достъп до мрежата -> Бял списък с IP адреси
Можете да използвате 0.0.0.0/0 в белия списък на всички IP.
Също така, когато използвате VPN , вашият IP също ще се промени.

4) не на последно място , след като се свържете с базата данни, трябва да дефинирате своята схема :

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

И

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

Съвет: Често срещана грешка, която правят много начинаещи е, че са забравили да използват new :
new mongoose.Schema({...})

Ако искате да създадете своя модел в отделен файл (което е най-добрата практика), ще трябва да промените вашите const Movies така че:

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

Не забравяйте да добавите const mongoose = require('mongoose'); в този отделен файл с js модел.

И където и да използвате искате да използвате този модел, вие импортирате така:

const Movies= require('../models/movies'); (пътят може да е различен за вашето приложение)

Останалото, приятелю, зависи от теб. Какво искате да направите с вашата база данни и как да я използвате.

Забележка към другите:Вложих толкова много време и ум в това, докато го пишех. Моля, ако видите нещо нередно или смятате, че можете да добавите нещо, не се колебайте да редактирате и подобрите отговора ми.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. CastError:Прехвърлянето към ObjectId е неуспешно за стойност име на маршрут в път _id за модел

  2. 5 начина за вмъкване на документи в MongoDB

  3. Защо този db.eval -> array.push би се изпълнил два пъти за определени записи?

  4. Как да изтриете MongoDB документи чрез импортиране на файл

  5. Как да обобщим по година-месец-ден в различна часова зона