Création d'une application de blogging à l'aide de Angular & MongoDB Connexion

Angular est un framework unique pour la création d'applications mobiles et Web utilisant le même code réutilisable. À l'aide de Angular, vous pouvez diviser l'application entière en composants réutilisables, ce qui facilite la maintenance et la réutilisation du code..

Dans cette série de didacticiels, vous apprendrez à commencer à créer une application Web en utilisant Angular avec MongoDB comme back-end. Vous utiliserez Node.js pour exécuter le serveur.

Au cours de ce didacticiel, vous allez créer une application de blogging utilisant Angular, Node.js et MongoDB.. 

Dans ce tutoriel, vous verrez comment commencer à configurer l’application et à créer le S'identifier composant.

Commencer

Commençons par installer le CLI angulaire.

npm install -g @ angular / cli

Une fois que vous avez installé la CLI angulaire, créez un dossier de projet appelé AngularBlogApp

mkdir AngularBlogApp cd AngularBlogApp

Dans le dossier du projet, créez une nouvelle application Angular à l'aide de la commande suivante:

ng nouveau client

Une fois que vous avez le client application créée, accédez au dossier du projet et installez les dépendances requises à l'aide de Node Package Manager (npm).

cd client npm installer

Démarrer le serveur client en utilisant npm.

npm start

L'application doit être exécutée à l'adresse http: // localhost: 4200 /.

Configuration de l'application

Votre application Web angulaire aura un composant racine. Créez un dossier appelé racine à l'intérieur de src / app dossier. Créez un fichier appelé root.component.html et ajoutez le code HTML suivant:

Composant racine

Ajouter un fichier appelé root.component.ts et ajoutez le code suivant:

importer composant de '@ angular / core'; @Component (sélecteur: 'app-root', templateUrl: './root.component.html') classe d'exportation RootComponent  

Supprimer les fichiers app.component.html, app.component.ts, app.component.scss, et app.component.spec.ts. Vous aurez un seul fichier appelé app.module.ts à l'intérieur de src / app dossier.

Importer le RootComponent à l'intérieur de app.module.ts fichier.

import RootComponent de './root/root.component';

Inclure le RootComponent dans le ngModules et le bootstrap.

@NgModule (déclarations: [RootComponent], importations: [BrowserModule, FormsModule], fournisseurs: [], bootstrap: [RootComponent])

Enregistrez les modifications et redémarrez le serveur. Vous aurez le RootComponent affiché lors du chargement de l'application.

Vous allez utiliser angulaire Routeur pour le routage dans notre application de blogs. Donc, importez les dépendances liées au routage dans un nouveau fichier appelé app.routing.ts à l'intérieur de src / app dossier.

importer RouterModule, Routes de '@ angular / router'; importer ModuleWithProviders de '@ angular / core / src / metadata / ng_module';

Définissez le chemin de la route avec les composants comme indiqué:

export const AppRoutes: Routes = [chemin: ", composant: LoginComponent];

Exporter les itinéraires pour créer un module avec tous les fournisseurs d'itinéraire.

export const ROUTING: ModuleWithProviders = RouterModule.forRoot (AppRoutes);

Voici comment app.routing.ts fichier regarde:

importer RouterModule, Routes de '@ angular / router'; importer ModuleWithProviders de '@ angular / core / src / metadata / ng_module'; importer LoginComponent de './login/login.component'; export const AppRoutes: Routes = [chemin: ", composant: LoginComponent]; export const ROUTING: ModuleWithProviders = RouterModule.forRoot (AppRoutes);

Comme on le voit dans le code ci-dessus, vous n'avez pas encore créé le LoginComponent. Il a été ajouté pour plus de clarté.

Importer le ACHEMINEMENT classe dans le app.module.ts fichier. 

importer ROUTING depuis './app.routing';

Incluez-le dans le NgModule importations.

importations: [BrowserModule, ROUTING, FormsModule]

Endroit RouterOutlet dans le root.component.html page. Ceci où le composant de la route est rendu.

Créez un dossier appelé s'identifier à l'intérieur de src / app dossier. À l'intérieur de s'identifier dossier, créer un fichier appelé login.component.ts et ajoutez le code suivant:

importer composant de '@ angular / core'; @Component (sélecteur: 'app-login', templateUrl: './login.component.html') classe d'exportation LoginComponent constructor ()  

Créez un fichier appelé login.component.html et ajoutez le code suivant:

Composant de connexion

Enregistrez les modifications ci-dessus et redémarrez le serveur. Comme indiqué dans les itinéraires définis lorsque l’application charge le LoginComponent sera affiché.

Création du composant de connexion

Vous avez déjà jeté les bases de la LoginComponent lors de la configuration de l'application. Créons la vue pour le LoginComponent en utilisant Bootstrap.

Téléchargez et incluez le style CSS bootstrap dans le les atouts dossier et inclure la référence dans le src / index.html page.

Placez une enveloppe autour du app-root dans le index.html page.

Ajoutez le code HTML suivant au login.component.html page.

Veuillez vous connecter

Créez un fichier appelé login.component.css à l'intérieur de s'identifier dossier et ajouter le style CSS suivant.

.sign-form-form largeur-max: 330px; rembourrage: 15px; marge: 0 auto;  .form-signin .form-signin-heading, .form-signin .checkbox margin-bottom: 10px;  .form-signin .checkbox font-weight: 400;  .form-signin .form-control position: relative; taille de la boîte: boîte-frontière; hauteur: auto; rembourrage: 10px; taille de police: 16px;  .form-signin .form-control: focus z-index: 2;  .form-signin input [type = "email"] margin-bottom: -1px; border-bottom-right-radius: 0; rayon en bas à gauche: 0;  .form-signin input [type = "mot de passe"] margin-bottom: 10px; rayon en haut à gauche: 0; border-top-right-radius: 0; 

Modifier le @Composant décorateur d'inclure le style CSS.

@Component (sélecteur: 'app-login', templateUrl: './login.component.html', styleUrls: ['./login.component.css'])

Enregistrez les modifications ci-dessus et essayez de charger l'application. Vous aurez le LoginComponent affiché avec la vue de connexion.

Création du service de connexion

LoginComponent devra interagir avec la base de données pour voir si l’utilisateur connecté est valide ou non. Donc, il faudra faire des appels API. Vous conserverez la partie interaction avec la base de données dans un fichier séparé appelé login.service.ts.

Créez un fichier appelé login.service.ts et ajoutez le code suivant:

import Injectable from '@ angular / core'; importer HttpClient à partir de '@ angular / common / http'; @Injectable () classe d'exportation LoginService constructeur (http privé: HttpClient)  validateLogin () 

Importer le LoginService dans le LoginComponent et l'ajouter en tant que fournisseur dans le décorateur de composants. 

importer LoginService à partir de './login.service';
@Component (sélecteur: 'app-login', templateUrl: './login.component.html', styleUrls: ['./login.component.css'], fournisseurs: [LoginService])

Ajouter une méthode appelée validateLogin dans le login.service.ts fichier qui fera l'appel API. Voici à quoi ça ressemble:

validateLogin (utilisateur: utilisateur) retourne this.http.post ('/ api / utilisateur / login', nom d'utilisateur: utilisateur.nomutilisateur, mot de passe: utilisateur.password)

Comme on le voit dans le code ci-dessus, il retourne un observable qui sera souscrit dans le login.component.ts fichier. Voici comment login.service.ts fichier regarde:

import Injectable from '@ angular / core'; importer HttpClient à partir de '@ angular / common / http'; importer utilisateur de '… /models/user.model'; @Injectable (), classe d'exportation LoginService constructeur (http privé: HttpClient)  validateLogin (utilisateur: Utilisateur) retourne this.http.post ('/ api / utilisateur / login', utilisateur: utilisateur.utilisateur, nom d'utilisateur, mot de passe: utilisateur .mot de passe )  

Mise en œuvre de la validation de la connexion utilisateur

Ajouter le ngModel directive aux éléments d'entrée dans login.component.html.

  

Ajouter un événement de clic au bouton de connexion.

Voici comment le modifié login.component.html regards:

Veuillez vous connecter

Définir et initialiser la variable utilisateur dans le login.component.ts fichier.

utilisateur public: utilisateur; constructeur (loginService privé: LoginService) this.user = nouvel utilisateur (); 

le Utilisateur le modèle a été défini dans le src / app / modèles dossier. Voici à quoi ça ressemble:

classe d'exportation User constructor () this.username = "; this.password =";  nom d'utilisateur public; mot de passe public; 

Définir une méthode appelée validateLogin qui sera appelé sur clic du bouton. Voici à quoi ressemble la méthode:

validateLogin () if (this.user.username && this.user.password) this.loginService.validateLogin (this.user) .subscribe (result => console.log ('result is', result)];, error => console.log ('error is', error););  else alert ('entrez votre nom d'utilisateur et votre mot de passe'); 

Lorsque le nom d’utilisateur et le mot de passe ont été entrés, le validateLogin méthode s'abonne à la LoginService méthode pour valider le login de l'utilisateur.

Voici comment login.component.ts fichier regarde:

importer composant de '@ angular / core'; importer LoginService à partir de './login.service'; importer utilisateur de '… /models/user.model'; @Component (sélecteur: 'app-login', templateUrl: './login.component.html', styleUrls: ['./login.component.css'], fournisseurs: [LoginService]) classe d'exportation LoginComponent public utilisateur: utilisateur; constructeur (loginService privé: LoginService) this.user = nouvel utilisateur ();  validateLogin () if (this.user.username && this.user.password) this.loginService.validateLogin (this.user) .subscribe (result => console.log ('result is', result); , error => console.log ('error is', error););  else alert ('entrez votre nom d'utilisateur et votre mot de passe');  

Envelopper

Dans cette partie de la série de tutoriels sur les applications de blogging Angular, vous avez appris à créer une application Web à l'aide de Angular. Vous avez créé la structure de base de l'application Angular et créé le LoginComponent ce qui permettra à l'utilisateur de valider le nom d'utilisateur et le mot de passe. 

Dans la partie suivante de la série de didacticiels, vous allez écrire l'API REST pour la validation de la connexion de l'utilisateur et créer le composant home..

Le code source de ce tutoriel est disponible sur GitHub.

Faites-nous savoir vos pensées et suggestions dans les commentaires ci-dessous.