mangusto é um framework que facilita a interação com o MongoDB. Na verdade, você basicamente nunca quer fazer toda a validação, conversão e clichê de lógica por conta própria, então por que reinventar a roda.
E já que você é um iniciante, não tenha medo de frameworks. Existem muitos frameworks úteis para muitas áreas de back-end e front-end para facilitar sua vida.
O artigo que você compartilhou é autoexplicativo, mas vou resumir apenas a parte do banco de dados para você (não vou me aprofundar no seu código, sem trabalho de burro. o resto é com você):
1) Primeiro de tudo instale o mangusto.
npm install mongoose
O artigo tem
--save
que não é mais necessário adicionar, como "npm install
salva todos os pacotes especificados em dependências por padrão."(ref.
) 2) para poder acessar e usar mangusto , você precisa importá-lo, em forma de nó, que é
require()
. const express = require(‘express’)
const mongoose = require(“mongoose”);
const bodyParser = require(‘body-parser’);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
E o que é body-parser lá para?
Ao lidar com banco de dados em expresso, mais cedo ou mais tarde você encontrará erros como este .
e o motivo pelo qual precisamos de um é melhor explicado em esta resposta .
Além disso, as versões recentes do express têm seu próprio analisador de corpo agora, então você pode usar
app.use(express.json())
em vez de app.use(bodyParser.json())
.Importante: body-parser deve estar antes de suas rotas.
3) use
mongoose.connect(url)
. url
argumento é o que você encontra em seu MongoDB Atlas . :Local:guia clusters -> conectar -> conectar seu aplicativo -> driver node.js
O que lhe dá, algo assim:
mongodb+srv://<user>:<password>@,cluster>.mongodb.net/test?retryWrites=true&w=majority
Importante: você usa usuário e senha do usuário que você criou na guia Acesso ao Banco de Dados, não seu próprio usuário e senha.
Você pode configurar suas variáveis de ambiente para proteger dados confidenciais e mutáveis. Mas eu prefiro usar
config.js
para simplificar, e que geralmente reside na raiz do app. Não só você pode protegê-los (como usar
.gitignore
), mas também modificá-los facilmente, pois existem variáveis que podem mudar de um ambiente para outro, tornando-os disponíveis em um só lugar e fáceis de encontrar, em vez de procurar que eles mudem em todo o seu aplicativo. Para
.env
abordagem de arquivo, leia este artigo
. Importante: caso você queira colocar seu código no github ou em qualquer lugar online, por isso usamos
config.js
, não esqueça de adicionar este arquivo em .gitignore
para evitar que esses dados confidenciais vazem e sejam expostos a outras pessoas online. em
config.js
você pode fazer isso:exports.username = 'your user';
exports.pass = 'your pass';
exports.myCluster = 'your cluster's name';
Em seguida, importe-os assim:
const { username, pass, myCluster } = require('./config');
<- o caminho pode ser diferente para você! Dica: Você pode usar back-tick (
` `
) para inserir facilmente essas variáveis para const url
, por meio de interpolação . Aquilo é:
const url = `mongodb+srv://${username}:${password},${myCluster}.mongodb.net/test?retryWrites=true&w=majority`
Importante: certifique-se de lista de permissões seu IP do lado do MongoDB (atlas), caso contrário você receberá um erro de conexão. Em segurança :Acesso à rede -> Lista de permissões de IP
Você pode usar
0.0.0.0/0
para colocar todos os IPs na lista de permissões.Além disso, ao usar VPN , seu IP também mudará.
4) por último, mas não menos importante , após conectar ao banco de dados, você precisa definir seu esquema :
const moviesSchema = new mongoose.Schema({
title: String,
year: Number,
rating: Number
});
E
const Movies = mongoose.model(“Movies”, moviesSchema);
Dica: Um erro comum que muitos novatos cometem é esquecer de usar
new
:new mongoose.Schema({...})
Se você quiser criar seu modelo em um arquivo separado (que é a melhor prática), você precisará modificar seu
const Movies
assim:module.exports = mongoose.model(“Movies”, moviesSchema);
Não se esqueça de adicionar
const mongoose = require('mongoose');
nesse arquivo de modelo js separado. E onde quer que você use esse modelo, você importa assim:
const Movies= require('../models/movies');
(o caminho pode ser diferente para seu aplicativo) O resto, meu amigo, é com você. O que você deseja fazer com seu banco de dados e como usá-lo.
Nota para os outros:dediquei tanto tempo e atenção a isso enquanto escrevia. Por favor, se você vir algo errado ou achar que pode adicionar algo, fique à vontade para editar e melhorar minha resposta.