Creación de una aplicación de blogs con React, Parte 1 Inicio de sesión de usuario

En esta serie de tutoriales, verá cómo comenzar a crear una aplicación de blogging utilizando React. A lo largo del curso de esta serie de tutoriales, se centrará en cómo utilizar React para desarrollar la interfaz de usuario de la aplicación. Utilizará Node.js para el lado del servidor de la aplicación.

En este tutorial, verá cómo implementar la interfaz de usuario y el back-end para el registro y el inicio de sesión de usuarios..

Empezando

Crear un directorio de proyecto llamado ReactNodeApp. Navegue al directorio del proyecto e inicie el proyecto del nodo.

npm init

Complete los detalles requeridos y usted debe tener la paquete.json archivo creado. Aquí está cómo se ve:

"name": "react-node-app", "version": "1.0.0", "description": "," main ":" index.js "," scripts ": " test ":" echo \ "Error: no hay prueba especificada \" && exit 1 "," autor ":" roy "," licencia ":" MIT "

Estarás usando el marco expreso para servir tu aplicación. Instale Express utilizando el siguiente comando:

npm install express --save

Usando el marco expreso, creemos nuestra aplicación escuchando en una dirección de puerto. Dentro del directorio del proyecto, cree un archivo llamado app.js. Requerir el módulo express dentro del app.js y crear una aplicación. Establezca la ruta estática de la aplicación donde pueda encontrar los archivos estáticos. Aquí está cómo se ve:

var express = require ("express"); var ruta = requiere ("ruta"); var app = express (); app.use (express.static (path.join (__ dirname, "/ html")));

Asigne un número de puerto para que la aplicación escuche en un puerto. Agregue el siguiente código para crear un servidor:

app.listen (7777, function () console.log ("Comenzó a escuchar en el puerto", 7777);)

Dentro del directorio del proyecto, cree una carpeta llamada html. Dentro de html carpeta, crea un archivo llamado index.html. Agregue el siguiente código a index.html:

   
Hola Mundo

Guarde los cambios anteriores e inicie el servidor con el siguiente comando:

nodo app.js

Dirija su navegador a http: // localhost: 7777 / index.html y debería poder ver el index.html página.

Creación de la vista de inicio de sesión

Estarás utilizando bootstrap para crear la interfaz de usuario. Descargar e incluir bootstrap en el index.html página.

Agregue las bibliotecas React requeridas en el index.html página.

 

Estarás creando la vista usando JSX. Si no está familiarizado con JSX, le recomiendo que lea un tutorial introductorio sobre React y JSX.

Para transformar el código JSX a JavaScript, necesitarás Babel, un compilador de JavaScript. Incluir babel en el index.html página.

Crear un archivo llamado main.jsx dentro de html carpeta. Este archivo contendrá los componentes React UI. 

Vamos a crear un nuevo componente React llamado Registrarse dentro de main.jsx expediente. 

clase Signin extiende React.Component 

Agrega un método de render dentro de la Registrarse componente que mostrará la interfaz de usuario para nuestra Registrarse componente.

la clase Signin extiende React.Component render () return ( 

Por favor, registrese

)

En el código anterior, todo es HTML con una sola diferencia. los clase atributo ha sido modificado para nombre de la clase cuando se usa en JSX.

los Registrarse componente, cuando se muestra, mostrará el código HTML dentro de la hacer método. 

Agrega un contenedor div en el index.html página donde renderizarás el Registrarse componente.

Renderizar Registrarse componente dentro del .envase div en el index.html

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

Guarde los cambios anteriores y reinicie el servidor de nodo. Dirija su navegador a http: // localhost: 7777 / index.html y debería poder ver la pantalla de inicio de sesión.

Implementación de inicio de sesión de usuario  

Para implementar el proceso de inicio de sesión, debe manejar el texto de entrada onChange Evento y mantener los valores del cuadro de texto en una variable de estado. Cuando el usuario haga clic en el botón, utilizará las variables de estado para leer los valores del cuadro de texto de la dirección de correo electrónico y la contraseña. Entonces, vamos a añadir el onChange evento a los cuadros de texto:

   

Definir el onChange eventos en el Registrarse componente:

handleEmailChange (e) this.setState (email: e.target.value) handlePasswordChange (e) this.setState (password: e.target.value)

Enlazar los eventos definidos anteriormente y las variables de estado en el método del constructor de componentes:

constructor (props) super (props); this.handleEmailChange = this.handleEmailChange.bind (this); this.handlePasswordChange = this.handlePasswordChange.bind (this); this.state = email: ", contraseña:"; 

Definir un al hacer clic Método que invocarás al hacer clic en el botón..

signIn () alert ('La dirección de correo electrónico es' + this.state.email + 'La contraseña es' + this.state.password); 

Añade el Al hacer clic evento a la Registrarse botón.

Guarde los cambios anteriores y reinicie el servidor de nodo. Dirija su navegador a http: // localhost: 7777 / index.html. Introduzca la dirección de correo electrónico y la contraseña y haga clic en Registrarse y debería poder ver el mensaje emergente de correo electrónico y contraseña.

Publicación de datos de React en el servicio de nodo 

Una vez que tenga los datos en el lado del cliente, debe publicar esos datos en el método del servidor Node.js para validar el inicio de sesión del usuario. Para publicar los datos, harás uso de otro script llamado axios. Axios es un cliente HTTP basado en la promesa para el navegador y Node.js. Incluir axios en el index.html página.

Dentro de registrarse método en el main.jsx archivo, agregue la siguiente línea de código para hacer una solicitud de publicación.

axios.post ('/ signin', email: this.state.email, contraseña: this.state.password) .then (function (response) console.log (response);) .catch (function (error ) console.log (error););

El código hace una solicitud posterior a la /registrarse Método con los parámetros mostrados. Una vez que la solicitud es exitosa, la promesa se resuelve en el entonces llamar de vuelta. En caso de error, la respuesta se registra en el captura llamar de vuelta. 

Vamos a crear un registrarse Método en el lado Node.js para validar el proceso de inicio de sesión del usuario. En el app.js archivo, crea un método llamado registrarse.

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

Estarás haciendo uso de la analizador corporal Módulo para analizar la solicitud publicada desde el lado del cliente React. Instala el analizador corporal módulo en el proyecto. 

npm instalar body-parser --save

Requerir el analizador corporal módulo en el app.js expediente.

var bodyParser = require ("body-parser");

Agregue la siguiente línea de código para habilitar JSON análisis.

app.use (bodyParser.json ());

Dentro de registrarse Método, puede analizar la solicitud como se muestra:

var user_name = req.body.email; var contraseña = req.body.password;

Modificar el registrarse Método como se muestra para validar el inicio de sesión del usuario..

app.post ('/ signin', function (req, res) var user_name = req.body.email; var password = req.body.password; if (user_name == 'admin' && password == 'admin') res.send ('éxito'); else res.send ('Failure');) 

Por el momento, las credenciales de usuario han sido codificadas. Puede reemplazarlo con el servicio apropiado según su preferencia.

Una vez que los parámetros se han analizado, se validan con las credenciales esperadas. Si es verdadero, se pasa un mensaje de éxito, de lo contrario se devuelve un mensaje de error.

Guarde los cambios anteriores y reinicie el servidor Node.js. Ingrese un nombre de usuario y contraseña válidos y haga clic en el método de inicio de sesión. Basado en las credenciales, devolverá un mensaje de éxito o falla, que se mostrará en la consola del navegador.

Creación de la vista de registro de usuario

El proceso de creación de la vista de registro de usuario es bastante similar a cómo implementó el módulo de inicio de sesión de usuario. Empecemos por crear el Regístrate componente en el main.jsx expediente.

la clase Suscripción extiende React.Component render () return ( 

Por favor regístrese

)

Dado que el registro y el inicio de sesión son dos componentes diferentes, debe vincular los dos componentes. Con el propósito de enrutar, usted estará haciendo uso de enrutador de reacción. Si no está familiarizado con el enrutamiento en React, le recomendamos que lea el tutorial de enrutamiento de React..

Incluir enrutador de reacción en el index.html página.

Definir lo requerido. enrutador de reacción variables para crear enlaces en el main.jsx expediente.

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

Defina las diferentes rutas de aplicación y la ruta predeterminada como se muestra a continuación:

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

Incluya un enlace al componente de inicio de sesión en el componente de registro y viceversa. Aquí está el Registrarse Método de renderización del componente con el enlace de registro:

render () return ( 

Por favor, registrese

'Regístrate'
)

Guarde los cambios anteriores y reinicie el servidor Node.js. Dirija su navegador a http: // localhost: 7777 / index.html y debería poder ver la pantalla de inicio de sesión con el enlace de registro. Haga clic en el enlace de registro y debe navegar a la pantalla de registro.

La implementación del registro de usuarios es similar a la forma en que implementó el inicio de sesión de usuarios. Dejaré la implementación de registro de usuario como un ejercicio. Publicaré la implementación de registro de usuarios en la siguiente parte de esta serie de tutoriales..

Envolviendolo

En esta parte de la serie de tutoriales, creó e implementó la pantalla de inicio de sesión. También viste cómo usar enrutador de reacción Implementar enrutamiento en React. En la siguiente parte de este tutorial, verá cómo implementar la parte de registro y la página Agregar publicación.

El código fuente de este tutorial está disponible en GitHub.

Háganos saber sus pensamientos y sugerencias en los comentarios a continuación.