Crea un proyecto de React y Express js con TypeScript.
Por:
Denisse Abreu
Junio 26, 2022 3pm ET
Eng/Spa 5-min
Hola 👋🏼, vamos a construir un formulario de inicio de sesión con React TypeScript desde un servidor Express js con TypeScript.
No nos vamos a enfocar en cómo construir un sistema de inicio de sesión; en su lugar, vamos a trabajar en la integración de TypeScript y el servidor.
Cuando terminemos, subiremos la aplicación a Heroku.
¡Comencemos!
1. Configure su entorno de Node.
- Cree un nuevo directorio en su computadora y vaya a ese directorio.
Terminalmkdir simple-react-form cd simple-react-form
- Cree un proyecto Node js, use el indicador -y para crearlo sin hacer preguntas y abre el proyecto en tu editor de código favorito. Vaya a package.json y complete los valores vacíos.
Terminalnpm init -y code .
2. Configurar Express js y TypeScript.
Instale cors, dotenv y express.js. Cors habilitará las solicitudes HTTP desde afuera de nuestro puerto de servidor. Dotenv nos permitirá usar variables de ambiente.
Install through npm or yarnnpm install cors dotenv express
A continuación, instale todas las librerías relacionadas a TypeScript con el indicador -D (desarrollo). El concurrently nos permitirá ejecutar varios comandos en scripts de package.json. El nodemon reiniciará automáticamente el servidor cuando realicemos cambios en cualquier archivo del directorio.
npm install -D typescript @types/cors @types/express @types/node concurrently nodemon
- Cree el archivo de configuración de TypeScript con el siguiente comando.
Confignpx tsc --init
- En el archivo tsconfig.json, descomente y agregue estos valores JSON.
tsconfig.json{ "compilerOptions": { "target": "es2016", "jsx": "preserve", "module": "commonjs", "allowJs": true, "outDir": "./dist", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "strict": true, "skipLibCheck": true }, "exclude": [ "client", "dist", "node_modules" ] }
- A continuación, vaya a package.json y actualice la sección de scripts.
package.json{ "scripts": { "build": "npx tsc", "start": "node dist/index.js", "dev": "concurrently \"npx tsc --watch\" \"nodemon -q dist/index.js\"", "test": "echo \"Error: no test specified\" && exit 1" }, }
- Cree index.ts en la raíz del proyecto e inserte el siguiente código.
index.tsimport dotenv from "dotenv"; import express, { Express, Request, Response } from "express"; import path from "path"; import cors from "cors"; dotenv.config(); const app: Express = express(); app.use(express.json()); app.use(cors()); app.get('/', (req: Request, res: Response) => { res.send('
Hello World From the Typescript Server!
') }); const port = process.env.PORT || 8000; app.listen(port, () => { console.log(`Example app listening on port ${port}`) });
- Reinicie su editor si está usando VS Code, abra su terminal nuevamente y ejecute:
Terminalnpm run build npm run dev
- Deberías ver esto 👇 en tu navegador.
3. Configurar React y TypeScript.
Ahora es el momento de construir nuestro lado 'client' React. Primero, abra su terminal de comando, asegúrese de estar en la raíz del proyecto, e instale React con TypeScript con el nombre de client.
Terminalnpx create-react-app client --template typescript
- Elimine la carpeta git que React instala de forma predeterminada.
Git Bashcd client rm -rf .git
- Vaya a la carpeta src y cree dos carpetas: components y utils.
Git Bashcd src mkdir components mkdir utils
-
Dentro de la carpeta de componentes crea otra carpeta llamada
form-input
, luego, creeform-input.tsx
y copie el código de abajo; este archivo contendrá nuestras entradas de formulario reutilizables (input forms). Si quieres manipular el estilo del 'input form', crea form-input.css en la carpeta 'from-input'.
Git Bashcd components mkdir form-input cd form-input touch form-input.tsx
client/src/components/form-input/form-input.tsx
-
Cree una carpeta utils y agregue
data-utils.ts
; este archivo hará las llamadas API al servidor.
client/src/utils/data-utils.ts
- Modifica el archivo app.tsx; estaremos construyendo el formulario de inicio de sesión usando las mismas clases y colores de React.
client/src/App.tsx
4. Agrega nuevas rutas y TypeScript al servidor.
Estamos casi terminando. Vuelva a index.ts y agregue la ruta de inicio de sesión con TypeScript adicional.
index.tsinterface FormInputs { email: string, password: string } // Array de usuarios con fines de prueba const users = [ { id: 1, name: 'Maria Doe', email: 'maria@example.com', password: 'maria123' }, { id: 2, name: 'Juan Doe', email: 'juan@example.com', password: 'juan123' } ]; // route login app.post('/login', (req: Request, res: Response) => { const { email, password }:FormInputs = req.body; const user = users.find(user => { return user.email === email && user.password === password }); if (!user) { return res.status(404).send('User Not Found!') } return res.status(200).json(user) });
- Ejecute tanto el cliente como el servidor en terminales individuales.
Terminalnpm run dev cd client npm start
- Inicie las pruebas de su aplicación. Puede Copiar el Css aquí.
Consulte la segunda parte de este tutorial, Cómo subir un proyecto de React y Express TypeScript a Heroku.