TypeORM - Creazione di un progetto semplice

Questo capitolo spiega come creare una semplice applicazione TypeORM. Creiamo una nuova directory denominata "TypeORM" e spostiamoci nella directory.

cd /path/to/TypeORM/

Sintassi

Usa il comando seguente per creare un nuovo progetto -

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

Esempio

typeorm init --name FirstProject --database mysql

Qui,

FirstProject è il nome del tuo progetto e sqlite3è il nome del database. Dopo aver eseguito il comando precedente, potresti vedere la seguente risposta,

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

Ora, spostati nella nostra directory del progetto e installa le dipendenze del progetto usando npm modulo,

$ cd FirstProject 

$ npm install

Struttura del progetto

Cerchiamo di capire la struttura del nostro progetto di nuova creazione, FirstProject.

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

Qui,

  • src - contiene il codice sorgente della tua applicazione in formato TypeScriptlinguaggio. Ha un fileindex.ts e due sottodirectory entity e migration.
  • index.ts - Il tuo punto di accesso all'applicazione.
  • entity - Contiene modelli di database.
  • migration - contiene il codice di migrazione del database.
  • node_modules - moduli npm salvati localmente.
  • ormconfig.json- File di configurazione principale della tua applicazione. Contiene i dettagli di configurazione del database e la configurazione delle entità.
  • package.json - Contiene le dipendenze del modulo del nodo.
  • package-lock.json - File generato automaticamente e relativo a package.json.
  • tsconfig.json - Contiene le opzioni del compilatore specifiche di TypeScript.

file ormconfig.json

Controlliamo l'opzione di configurazione disponibile per la nostra applicazione. Apri il file ormconfig.json e sembra simile a questo -

{ 
   "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
   }    
 }

Qui,

type, host, username, password, database e le opzioni della porta sono correlate all'impostazione del database. mysql può essere configurato utilizzando la configurazione seguente -

{ 
   "type": "mysql", 
   "host": "localhost", 
   "port": 3306, 
   "username": "db_username", "password": "db_password", "database": "db_name" 
}
  • entities - fa riferimento alla posizione delle classi di entità.
  • migrations - fa riferimento alla posizione delle tue classi di migrazione.
  • subscribers - fa riferimento alla posizione delle classi di iscritti.
  • cli - fa riferimento all'opzione utilizzata da TypeORM CLI per generare automaticamente il codice

Avvia il server MySql

Prima di avviare l'applicazione, avvia il tuo MySQL server o qualsiasi server di database da te utilizzato e assicurati che funzioni correttamente.

Esegui l'applicazione

Una volta che tutto è configurato, possiamo eseguire l'applicazione utilizzando il comando seguente:

npm start

Potresti vedere la seguente risposta:

> [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.

L'applicazione ha inserito un nuovo utente nel database, quindi lo carica al contrario dal database e infine mostra l'utente caricato nella console. Abbiamo creato con successo un nuovo fileTypeORM applicazione, configurarla ed eseguire l'applicazione.

Discuteremo di come i dati vengono elaborati nei prossimi capitoli.