Skip to content

Workshop pour apprendre à créer des apis grace à mongodb et nodejs

Notifications You must be signed in to change notification settings

Excelsiort/Hub-Creation-Api-mongodb-nodejs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 

Repository files navigation

Hub-Creation-Api-mongodb-nodejs

Workshop pour apprendre à créer des apis grace à mongodb et nodejs

Pour commencer nous allons installer nodejs https://nodejs.org/fr/download/ (prendre la derniere version LTS)

Initialiser le projet:

$ npm init -y

Puis créer le fichier index.js.

Installer les dépendences suivantes:

$ npm i -s express nodemon

Modifier le fichier package.json au niveau du "scripts" (pour lancer le projet avec nodemon et avoir les modifications en direct):

"scripts": { "start": "nodemon index.js"},

Dans index.js se connecter au serveur:

const express = require('express');
const app = express();

app.listen(5500, () => console.log('Server started: 5500'));

Maintenant que nous pouvons nous connecter au serveur il nous allons créer une base de donnée appelé node-api.

Créer un dossier models contenant dbConfig.js à la racine.

Télécharger MongoDb compass https://www.mongodb.com/try/download/compass

Créer un cluster de type Atlas sur https://account.mongodb.com/account/login?signedOut=true

Se connecter au cluster avec mongoDb Compass grace au lien fourni puis créer une base de donnée

Installer mongoose (package pour utiliser mongodb avec nodejs):

$ npm i -s mongoose

Dans models/dbConfig.js se connecter à la db:

const mongoose = require('mongoose');

mongoose.connect(
  "le lien de connection",
  { useNewUrlParser: true, useUnifiedTopology: true },
  (err) => {
    if (!err) console.log("Mongodb connected");
    else console.log("Connection error :" + err);
  }
)

Puis l'appeler dans index.js:

require('./models/dbConfig');

Créer le fichier postModel.js dans models et créer le model de db pour des posts avec un auteur, un message et une date:

   
const mongoose = require("mongoose");

const PostsModel = mongoose.model(
  "node-api",
  {
    author: {
      type: String,
      required: true
    },
    message: {
      type: String,
      required: true
    },
    date: {
      type: Date,
      default: Date.now
    }
  },
  "posts"
);

module.exports = { PostsModel };

Créer le dossier routes pour faire le routage de notre api et à l'interieur le fichier postsController.js

Faire une methode Get pour récuperer les données

Créer le fichier postsControllers.js dans models/routes

const express = require('express');
const router = express.Router();

const { PostsModel } = require('../postsModel');

router.get('/', (req, res) => {
  PostsModel.find((err, docs) => {
    if (!err) res.send(docs);
    else console.log("Error to get data : " + err);
  })
});

module.exports = router;

Et l'appeler sur index.js:

const postsRoutes = require('./routes/postsController');

app.use('/posts', postsRoutes);

Pour tester vous pouvez créer un post à la main dans la db:

{
  "author" : "Damien",
  "message" : "on lache r"
}

Pour la suite on ira dans exercice.md pour faire le reste.

About

Workshop pour apprendre à créer des apis grace à mongodb et nodejs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published