Créer un serveur Node.js en local utilisant une base de données MongoDB en 30 minutes pour les débutants

Le tutoriel se divise en 3 étapes : créer une base de données NOSQL MongoDB, créer un serveur Node.js et connecter la base de données MongoDB au serveur Node.js.


1. Créer une base de données MongoDB

a) Installation de MongoDB

Pour ce faire, il faut télécharger et installer MongoDB sur sa machine. Le logiciel est disponible pour Windows, Linux et Mac.

Installation de MongoDB version 3.4.4

Choisissez l’installation “Complète” et installez. Si l’installation met du temps, pas de panique, c’est normal. Une fois celle-ci finie, cliquez sur “Finish”.

b) Fonctionnement de MongoDB

Je ne m’étalerai pas sur l’apprentissage de la gestion de bases de données NOSQL car ce n’est pas l’objet de mon tutoriel. Ici on va seulement mettre en place toutes les solutions techniques pour commencer à travailler sereinement avec cette technologie.

Pour fonctionner, MongoDB a besoin de 2 éléments : un serveur (ici créé localement) et une console dans laquelle nous allons travailler (créer des bases de données, les gérer, etc), et ce en même temps bien évidemment.

Le serveur va se connecter au serveur local de votre machine sur le port 27017. Via la console, une requête est envoyée automatiquement au serveur pour se connecter au serveur local. À partir de là nous pourrons commencer à manipuler des bases de données.

c) Création du serveur

Lorsque vous vous connectez à votre compte Gmail ou autre service de messagerie électronique, vous avez accès à vos mails qui sont stockés sur leurs serveurs. Donc, de notre côté, on doit aussi indiquer à notre serveur où sera stockée notre base de données. Nous allons commencer à travailler avec l’invite de commandes (l’équivalent du terminal sous Mac).

Par souci de simplicité, nous allons créé notre dossier de stockage à la racine du disque C: Lancez l’explorateur, cliquez sur Système (C:) et faites un clic droit puis Nouveau dossier et nommez-le “datamongo” (tout en minuscule).

Ensuite, lancez l’invite de commandes en cliquant sur le bouton Démarrer de Windows et tapez “cmd.exe” dans la barre de recherche et faites un clic droit sur le résultat qui s’est affiché puis “Exécuter en tant qu’administrateur” (Si vous n’y arriverez pas de cette manière, toujours via le menu Démarrer, allez dans “Tous les programmes” > “Accessoires” > “Invite de commandes” > [Clic Droit] > “Exécuter en tant qu’administrateur”). La fenêtre s’affiche :

Invite de commandes

Tapez “cd..” puis Entrée, puis une seconde fois, de façon à être dans le répertoire C:\.

Maintenant, le but est d’accéder au répertoire d’installation de MongoDB dans lequel se trouve le fichier mongod.exe. Le mien est le suivant : “C:\Program Files\MongoDB\Server\3.4\bin”. Le vôtre sera certainement le même.

Chemin d’accès à mongod.exe

Tapez donc successivement ces commandes : “cd program files”, faites Entrée, “cd mongodb”, faites Entrée, “cd server”, faites Entrée, “cd 3.4”, faites Entrée, “cd bin”, faites Entrée.

Enfin, tapez la commande suivante, qui permettra de lancer le serveur local puis faites Entrée :

N.B. : il s’agit de 2 “Tirets du 6” et un antislash (Alt Gr + 8)

Si vous obtenez les mêmes lignes que moi (image ci-dessous), vous pouvez continuer !

Ne fermez jamais cette fenêtre sauf lorsque votre travail est fini. Souvenez-vous que cette fenêtre-ci est votre serveur, si vous fermez cette fenêtre, vous fermez le serveur.

d) Lancement de la console MongoDB

Maintenant, on lance une deuxième invite de commandes de la même façon que la première, donc recommencez l’étape c) Lancement du serveur et arrêtez-vous une fois que vous avez tapé “cd bin”, comme le montre l’image suivante :

Ensuite, tapez simplement “mongo” et faites “Entrée” pour lancer MongoDB :

N.B. : Il existe un raccourci qui nous permet d’éviter de s’embêter à réécrire “cd bidule” à chaque fois, allez directement dans l’explorateur, puis naviguez jusqu’à trouver le répertoire désiré, puis maintenez la touche “Shift” de votre clavier et faites un clic droit puis cliquez sur “Ouvrir une fenêtre de commandes ici”. Ce raccourci ne fonctionnera pas pour tout le monde, c’est pourquoi j’en parle seulement maintenant.

Voilà tout ! Vous êtes fin prêt à utiliser et surtout apprendre MongoDB. Ne fermez pas non plus la console MongoDB jusqu’à la fin de mon tutoriel, on en aura besoin par la suite. Je vous montre simplement pour l’exemple quelques commandes que vous pouvez saisir :

Commande “show dbs” pour voir la liste des bases de données présentes
Commande “use nomdelabase” pour créer une base de données
Permet d’insérer un objet ayant comme propriété un nom dans une collection au format JSON

Pour vous prouver que votre serveur MongoDB est bien accessible et que la base de données “meilleurtuto” a bien été créée, cliquez sur ce lien : http://localhost:27017/meilleurtuto, vous obtiendrez une page avec ce message (si vous ne l’obtenez pas, actualisez la page) :


2. Créer un serveur Node.js en local

Pour ce faire, il faut télécharger et installer Node.js sur sa machine. Le logiciel est aussi disponible pour Windows, Linux et Mac.

Une fois l’installation faite, créez un dossier à la racine du disque C: et nommez le “nodejstuto”.

Ensuite, ouvrez l’invite de commandes et rendez-vous via l’invite de commandes dans le dossier que vous venez de créer, comme ceci :

Accès au dossier nouvellement créé

L’installation de Node.js comprend aussi ses modules que l’on peut installer localement dans le dossier qu’on vient de créer via la commande npm. Retenez que pour utiliser npm dans notre dossier, il faut d’abord l’initialiser puis installer les modules qu’on veut. On installera les modules MongoDB et Express (il s’agit du module de Node.js le plus utilisé, on ne l’utilisera pas dans ce tutoriel mais on l’installe tout de même).

C’est parti ! Première commande, “npm init” puis Entrée.

Faites 2 fois “Entrée”, puis saisissez une description si vous voulez, ensuite faites “Entrée” jusqu’à arriver à “author”, saisissez les 3 premières lettres de votre prénom puis faites “Entrée” 3 fois.

Cette commande crée un fichier package.json. Inutile de savoir ce que c’est pour notre tutoriel, mais souvenez-vous en.

Ensuite, on installe nos 2 modules. Tapez “npm install express”, puis patientez le temps de l’installation. On obtient ceci :

Tapez ensuite “npm install mongodb”.

Au même titre que MongoDB, Node.js dispose d’une console dans laquelle on entrera toutes nos lignes pour programmer le serveur en JavaScript. Pour accéder à la console, il suffit de taper “node” tout simplement dans l’invite de commandes. Un chevron apparaît alors en début de ligne, nous signifiant que nous sommes bien dans Node.js.

Pour vous montrer que Node.js comprend très bien le JavaScript, tapez “console.log(“Je vais devenir un pro en Node.js”);”. Cette ligne est censée afficher le message contenu entre les parenthèses.

Le serveur n’attend plus qu’on le connecte à la base.


3. Connecter la base de données MongoDB au serveur Node.js

Nous allons créer un fichier main.js dans le dossier nodejstuto. Vous pouvez le faire via votre éditeur de texte favori (Sublime Text, Notepad++, Brackets, Atom…). Si vous n’en avez pas, téléchargez Sublime Text 3 et lancez-le.

Faites “File” > “New File” puis à nouveau dans “File” > “Save As”, appelez votre fichier “main.js” et enregistrez-le dans votre dossier nodejstuto qui se trouve, je vous le rappelle, à la racine de C:

Dans ce fichier, nous allons écrire le bout de code qui connectera notre base de données au serveur Node.js. Voici le code :

Allez dans “File” et cliquez sur “Save”. Retournez dans l’invite de commandes de Node.js. Tapez “.exit” pour sortir de Node.js, le chevron a maintenant disparu, ce qui prouve bien qu’on en est sorti.

Maintenant nous allons exécuter notre fichier main.js avec cette commande : “node main.js”. Voyez le résultat :


C’est la fin du tuto ! Nous avons donc réussi à connecter notre base de données MongoDB à notre serveur Node.js, et nous pouvons donc manipuler notre base de données depuis le serveur Node.js. Vous pouvez maintenant aborder n’importe quel tutoriel du net pour apprendre MongoDB et/ou Node.js !