Categorias
iiiiii
Tipe script con express
Descripcion
usar typescript con node y express
nota
1. Instalar typescript en node : npm i -g typescript
2. iniciar typescript : tsc --init
3. En tsScript seteamos :
- "outDir": "./dist"
- "sourceMap": true, //Esto es para que si existe error en typescript veamos el error equivalente en javascript
- "moduleResolution": "node10"
4. crear un archivo app.ts
5. ejecutar el comando tsc
6. instalar un paquete para desarrollo, esto se usa para escribir codigo con buenas practicas :
- npm i tslink -save-dev
7. instalamos typescript en el proyecto solo para desarrollar :
- npm i typescript --save-dev
8. Inicinado el archivo de cconfiguracion ejecutando el script en la ruta espesificada:
- .\node_modules\.bin\tslint --init
9. En el archivo de configuracion de reglas creamos la regla de que nos permita usar el console.log dentro de rules objeto
- "no-console":false
10. Instalamos express y podemos crear el servidor de express usando ts
-npm i express cors dotenv
11. Nota: al usar express es decir importarlo va generar un error por que no se han instalado la definicion de tipado de express para Typescrip con lo cual se debe instalar esos tipados
- npm i --save-dev @types/express
11.1. De ahora en adelante se debe compilar los archivos de la siguiente manera
- tsc --watch //compila todos los archivos tsc pero automaticamente cuando algo cambie
11.2.
En otra terminal
- nodemon app.js // para que nodemon observe los cambios que genere tsc al traspilar a javascript
11. fin de ahora en adelante debemos crear archivos .ts
modulo
import express,{Application} from 'express';
import routerUsuario from '../routes/usuario';
import cors from 'cors';
class Server {
private app:Application;
private port:string;
private apiPaths = {
usuarios :'/api/usuarios'
}
constructor(){
this.app = express();
this.port=process.env.PORT||'8000';
//middelware
this.middelwares();
this.routes();
}
middelwares(){
//CORS
this.app.use(cors());
//convierte lo que resive como parametro de body como un json
this.app.use(express.json());
//Carpeta publica
this.app.use(express.static('public'));
}
listener(){
this.app.listen(this.port,()=>{
console.log('Servidor !! corriendo en ',this.port);
});
}
routes(){
this.app.use(this.apiPaths.usuarios,routerUsuario);
}
}
export default Server;
app
import dotenv from 'dotenv';
import Server from './models/server';
//
dotenv.config();
const server = new Server();
server.listener();