TypeORM - Creación de un proyecto simple

Este capítulo explica cómo crear una aplicación TypeORM simple. Creemos un nuevo directorio llamado 'TypeORM' y pasemos al directorio.

cd /path/to/TypeORM/

Sintaxis

Utilice el siguiente comando para crear un nuevo proyecto:

typeorm init --name <project-name> --database <database-name>

Ejemplo

typeorm init --name FirstProject --database mysql

Aquí,

FirstProject es el nombre de su proyecto y sqlite3es el nombre de la base de datos. Después de ejecutar el comando anterior, podría ver la siguiente respuesta,

Project created inside /path/to/TypeORM/FirstProject directory

Ahora, muévase a nuestro directorio de proyectos e instale las dependencias del proyecto usando npm módulo,

$ cd FirstProject 

$ npm install

Estructura del proyecto

Entendamos la estructura del proyecto de nuestro proyecto recién creado, FirstProject.

FirstProject 
├──> src 
│ ├──> entity 
│ │ └──> User.ts 
│ ├──> migration 
│ └──> index.ts 
├──> node_modules 
├──> ormconfig.json 
├──> package.json 
├──> package-lock.json 
└──> tsconfig.json

Aquí,

  • src - contiene el código fuente de su aplicación en TypeScriptidioma. Tiene un archivoindex.ts y dos subdirectorios entity y migration.
  • index.ts - Su punto de entrada a la aplicación.
  • entity - Contiene modelos de base de datos.
  • migration - contiene el código de migración de la base de datos.
  • node_modules - módulos npm guardados localmente.
  • ormconfig.json- Archivo de configuración principal de su aplicación. Contiene detalles de configuración de la base de datos y configuración de entidades.
  • package.json - Contiene dependencias de módulo de nodo.
  • package-lock.json - Archivo generado automáticamente y relacionado con package.json.
  • tsconfig.json - Contiene opciones de compilador específicas de TypeScript.

archivo ormconfig.json

Comprobemos la opción de configuración disponible para nuestra aplicación. Abra el archivo ormconfig.json y se verá similar a esto:

{ 
   "type": "mysql", 
   "host": "localhost", 
   "port": 3306, 
   "username": "test", 
   "password": "test", 
   "database": "test", 
   "synchronize": true, 
   "logging": false, 
   "entities": [ 
      "src/entity/**/*.ts" ], 
   "migrations": [ "src/migration/**/*.ts" 
   ], 
   "subscribers": [ "src/subscriber/**/*.ts" 
   ], 
   "cli": { 
      "entitiesDir":"src/entity", "migrationsDir":"src/migration", "subscribersDir":"src/subscriber
   }    
 }

Aquí,

type, host, username, password, database y las opciones de puerto están relacionadas con la configuración de la base de datos. mysql se puede configurar usando la siguiente configuración:

{ 
   "type": "mysql", 
   "host": "localhost", 
   "port": 3306, 
   "username": "db_username", "password": "db_password", "database": "db_name" 
}
  • entities - hace referencia a la ubicación de sus clases de entidad.
  • migrations - hace referencia a la ubicación de sus clases de migración.
  • subscribers - se refiere a la ubicación de sus clases de abonado.
  • cli - se refiere a la opción utilizada por TypeORM CLI para generar automáticamente el código

Inicie el servidor MySql

Antes de iniciar la aplicación, inicie su MySQL servidor o cualquier servidor de base de datos utilizado por usted y asegúrese de que esté funcionando correctamente.

Ejecutar aplicación

Una vez que todo está configurado, podemos ejecutar la aplicación usando el siguiente comando:

npm start

Podrías ver la siguiente respuesta:

> [email protected] start /Users/../../TypeORM/FirstProject 

> ts-node src/index.ts 

Inserting a new user into the database... Saved a new user with id: 1 Loading users from the database... Loaded users: [ User { id: 1, firstName: 'Timber', lastName: 'Saw', age: 25 }] 

Here you can setup and run express/koa/any other framework.

La aplicación insertó un nuevo usuario en la base de datos y luego lo cargó en sentido inverso desde la base de datos y finalmente mostró el usuario cargado en la consola. Hemos creado con éxito un nuevoTypeORM aplicación, configúrelo y ejecute la aplicación.

Discutiremos sobre cómo se ejecutan los datos detalladamente en los próximos capítulos.