Création d'une application de blogging à l'aide de React, première partie Connexion de l'utilisateur

Dans cette série de didacticiels, vous apprendrez à créer une application de blogging à l'aide de React. Tout au long de cette série de didacticiels, vous allez vous expliquer comment utiliser React pour développer l'interface utilisateur de l'application. Vous allez utiliser Node.js pour le côté serveur de l'application.

Dans ce tutoriel, vous verrez comment mettre en œuvre l'interface utilisateur et le back-end pour l'enregistrement et la connexion de l'utilisateur..

Commencer

Créez un répertoire de projet appelé ReactNodeApp. Accédez au répertoire du projet et lancez le projet de noeud..

npm init

Remplissez les informations requises et vous devriez avoir le package.json fichier créé. Voici à quoi ça ressemble:

"name": "react-node-app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": "test": " echo \ "Erreur: pas de test spécifié \" && exit 1 "," author ":" roy "," license ":" MIT "

Vous utiliserez le cadre express pour servir votre application. Installez Express en utilisant la commande suivante:

npm install express --save

En utilisant le framework express, créons notre application en écoutant une adresse de port. Dans le répertoire du projet, créez un fichier appelé app.js. Exiger le module express à l'intérieur du app.js et créer une application. Définissez le chemin statique de l'application où trouver les fichiers statiques. Voici à quoi ça ressemble:

var express = require ("express"); var path = require ("chemin"); var app = express (); app.use (express.static (path.join (__ nom de répertoire, "/ html")));

Attribuez un numéro de port à l'application pour l'écouter sur un port. Ajoutez le code suivant pour créer un serveur:

app.listen (7777, function () console.log ("Commence à écouter sur le port", 7777);)

Dans le répertoire du projet, créez un dossier appelé html. À l'intérieur de html dossier, créer un fichier appelé index.html. Ajoutez le code suivant à index.html:

   
Bonjour le monde

Enregistrez les modifications ci-dessus et démarrez le serveur à l'aide de la commande suivante:

noeud app.js

Pointez votre navigateur sur http: // localhost: 7777 / index.html et vous devriez pouvoir voir le index.html page.

Création de la vue de connexion

Vous utiliserez bootstrap pour créer l'interface utilisateur. Téléchargez et incluez bootstrap dans le index.html page.

Ajoutez les bibliothèques React requises dans le répertoire index.html page.

 

Vous allez créer la vue en utilisant JSX. Si vous n'êtes pas familier avec JSX, je vous recommanderais de lire un tutoriel d'introduction à React et JSX.

Pour transformer le code JSX en JavaScript, vous aurez besoin de babel, un compilateur JavaScript. Inclure babel dans le index.html page.

Créez un fichier appelé main.jsx à l'intérieur de html dossier. Ce fichier contiendra les composants de l'interface utilisateur de React. 

Créons un nouveau composant React appelé Se connecter à l'intérieur de main.jsx fichier. 

la classe de connexion étend React.Component 

Ajouter une méthode de rendu à l'intérieur du Se connecter composant qui affichera l'interface utilisateur pour notre Se connecter composant.

la classe de connexion étend React.Component render () return ( 

Veuillez vous connecter

)

Dans le code ci-dessus, tout est HTML avec une seule différence. le classe attribut a été modifié pour nom du cours quand utilisé dans JSX.

le Se connecter Le composant, lorsqu'il est affiché, affichera le code HTML à l'intérieur du rendre méthode. 

Ajouter un conteneur div dans le index.html page où vous rendrez le Se connecter composant.

Rendre le Se connecter composant à l'intérieur du .récipient div dans le index.html

ReactDOM.render ( < Signin / > , document.getElementById ('app'));

Enregistrez les modifications ci-dessus et redémarrez le serveur de noeud. Pointez votre navigateur sur http: // localhost: 7777 / index.html et vous devriez pouvoir afficher l'écran de connexion..

Implémentation de la connexion utilisateur  

Pour mettre en œuvre le processus de connexion, vous devez gérer le texte saisi. sur le changement event et conservez les valeurs de la zone de texte dans une variable d'état. Lorsque l'utilisateur clique sur le bouton, vous utiliserez les variables d'état pour lire les valeurs de la zone de texte d'adresse électronique et du mot de passe. Alors, ajoutons le sur le changement événement aux zones de texte:

   

Définir les sur le changement événements dans le Se connecter composant:

handleEmailChange (e) this.setState (email: e.target.value) handlePasswordChange (e) this.setState (mot de passe: e.target.value)

Liez les événements définis ci-dessus et les variables d'état dans la méthode du constructeur de composant:

constructeur (accessoires) super (accessoires); this.handleEmailChange = this.handleEmailChange.bind (this); this.handlePasswordChange = this.handlePasswordChange.bind (this); this.state = email: ", mot de passe:"; 

Définir un sur clic méthode que vous invoquerez sur un clic de bouton.

signIn () alert ('L'adresse email est' + this.state.email + 'Le mot de passe est' + this.state.password); 

Ajouter le Sur clic événement au Se connecter bouton.

Enregistrez les modifications ci-dessus et redémarrez le serveur de noeud. Pointez votre navigateur sur http: // localhost: 7777 / index.html. Entrez l'adresse e-mail et le mot de passe, puis cliquez sur le bouton Se connecter bouton, et vous devriez pouvoir voir l'email et le mot de passe pop-up.

Enregistrement de données du service Réagir au nœud 

Une fois que vous avez les données côté client, vous devez les publier sur la méthode serveur Node.js pour valider la connexion de l'utilisateur. Pour publier les données, vous utiliserez un autre script appelé axios. Axios est un client HTTP basé sur des promesses pour le navigateur et Node.js. Comprendre axios dans le index.html page.

À l'intérieur de se connecter méthode dans le main.jsx fichier, ajoutez la ligne de code suivante pour faire une demande de publication.

axios.post ('/ signin', email: this.state.email, mot de passe: this.state.password) .then (fonction (réponse) console.log (réponse);) .catch (fonction (erreur ) console.log (error););

Le code fait une demande de publication à la /se connecter méthode avec les paramètres indiqués. Une fois que la demande est réussie, la promesse est résolue dans le puis rappeler. En cas d'erreur, la réponse est enregistrée dans le capture rappeler. 

Créons un se connecter méthode du côté Node.js pour valider le processus de connexion de l'utilisateur. dans le app.js fichier, créer une méthode appelée se connecter.

app.post ('/ signin', fonction (req, res) )

Vous allez utiliser le analyseur de corps module permettant d’analyser la demande postée du côté du client React. Installez le analyseur de corps module dans le projet. 

npm install body-parser --save

Exiger le analyseur de corps module dans le app.js fichier.

var bodyParser = require ("analyseur de corps");

Ajoutez la ligne de code suivante pour activer JSON analyse.

app.use (bodyParser.json ());

À l'intérieur de se connecter méthode, vous pouvez analyser la requête comme indiqué:

var nom_utilisateur = req.body.email; var password = req.body.password;

Modifier le se connecter méthode comme indiqué pour valider la connexion de l'utilisateur.

app.post ('/ signin', fonction (req, res) var nom_utilisateur = req.body.email; mot de passe var = req.body.password; if (nom_utilisateur == 'admin' && mot_passe == 'admin') res.send ('success'); else res.send ('échec'); 

Pour le moment, les informations d'identification de l'utilisateur ont été codées en dur. Vous pouvez le remplacer par le service approprié selon vos préférences..

Une fois les paramètres analysés, ils sont validés par rapport aux informations d'identification attendues. Si la valeur est true, un message de réussite est transmis, sinon un message d'échec est renvoyé..

Enregistrez les modifications ci-dessus et redémarrez le serveur Node.js. Entrez un nom d'utilisateur et un mot de passe valides, puis cliquez sur la méthode de connexion. Sur la base des informations d'identification, il renverra un message de succès ou d'échec, qui sera affiché dans la console du navigateur..

Création de la vue d'enregistrement d'utilisateur

Le processus de création de la vue d'enregistrement d'utilisateur est assez similaire à la manière dont vous avez implémenté le module de connexion d'utilisateur. Commençons par créer le S'inscrire composant dans le main.jsx fichier.

La classe Signup étend React.Component render () return ( 

Inscrivez vous s'il vous plait

)

Étant donné que l'inscription et la connexion sont deux composants différents, vous devez les lier. Pour le routage, vous utiliserez: réagir-routeur. Si vous êtes nouveau sur le routage dans React, je vous recommande de lire le didacticiel de routage de React..

Comprendre réagir-routeur dans le index.html page.

Définir le requis réagir-routeur variables pour créer des liens dans le main.jsx fichier.

var Router = window.ReactRouter.Router; var Route = window.ReactRouter.Route; var hashHistory = window.ReactRouter.hashHistory; var Link = window.ReactRouter.Link;

Définissez les différents itinéraires d'application et l'itinéraire par défaut comme indiqué ci-dessous:

ReactDOM.render (    , document.getElementById ('app'));

Incluez un lien vers le composant de connexion dans le composant de connexion et inversement. Voici la Se connecter Méthode de rendu du composant avec le lien d'inscription:

render () return ( 

Veuillez vous connecter

'S'inscrire'
)

Enregistrez les modifications ci-dessus et redémarrez le serveur Node.js. Pointez votre navigateur sur http: // localhost: 7777 / index.html et vous devriez pouvoir voir l'écran de connexion avec le lien d'inscription. Cliquez sur le lien d'inscription et vous devriez accéder à l'écran d'inscription..

L'implémentation de la connexion utilisateur est similaire à celle de la procédure de connexion de l'utilisateur. Je laisserai l'implémentation de la connexion de l'utilisateur comme exercice. J'afficherai l'implémentation d'inscription d'utilisateur dans la prochaine partie de cette série de tutoriels..

Envelopper

Dans cette partie de la série de didacticiels, vous avez créé et implémenté l’écran de connexion. Vous avez également vu comment utiliser réagir-routeur implémenter le routage dans React. Dans la suite de ce didacticiel, vous apprendrez à implémenter la partie Inscription et la page Ajouter un message..

Le code source de ce tutoriel est disponible sur GitHub.

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