TypeORM avec JavaScript

La langue par défaut prise en charge par TypeORM est TypeScript. Étant donné que TypeScript prend en charge le typage statique, les classes et les décorateurs, il est facile de définir l'entité et ses attributs. À la fois,JavaScript est également nécessaire dans certains projets où le langage préféré est JavaScript. TypeORMfournit également une prise en charge complète du langage JavaScript. TypeORM prend en charge les versions es5 et es6 de JavaScript.

Dans ce chapitre, apprenons à écrire l'application TypeORM dans JavaScript ES5 (ECMAScript 5).

Ouvrez une invite de commande et accédez à votre espace de travail.

cd /path/to/workspace/

Exécutez la commande ci-dessous pour créer un projet TypeORM.

typeorm init --name typeorm-javascript-student-app --database mysql

Ouvert package.json fichier pour supprimer les références typescipt.

original

{ 
   "name": "typeorm-javascript-student-app", "version": "0.0.1", 
   "description": "Awesome project developed with TypeORM.", "devDependencies": { 
      "ts-node": "3.3.0", "@types/node": "^8.0.29", "typescript": "3.3.3333" 
   }, 
   "dependencies": { 
      "typeorm": "0.2.24", "reflect-metadata": "^0.1.10", "mysql": "^2.14.1" 
   }, 
   "scripts": { 
      "start": "ts-node src/index.ts" } 
}

mis à jour

{ 
   "name": "typeorm-javascript-student-app", "version": "0.0.1", 
   "description": "Awesome project developed with TypeORM.", "dependencies": { 
      "typeorm": "0.2.24",
      "mysql": "^2.14.1" 
   }, 
   "scripts": { 
   "start": "node src/index.js" 
   } 
}

Ici,

  • Enlevé le devDependencies section et package lié à la dactylographie dans dependences section.
  • Modification du script de démarrage pour pointer le code javascript au lieu du code dactylographié.

Exécutez la commande ci-dessous pour installer les packages nécessaires.

npm install

Retirer tsconfig.json et le fichier index.ts.

Supprimez le fichier User.ts dans le dossier de l'entité, puis créez une entité étudiante au format json, student.json comme spécifié ci-dessous -

{ 
   "name": "Student", 
   "columns": { 
      "id": { 
         "primary": true, 
         "type": "int", 
         "generated": true 
      }, 
      "name": { 
         "type": "varchar" 
      }, 
      "age": { 
         "type": "integer" 
      } 
   } 
}

Créez un nouveau fichier, src / index.js et mettez le code ci-dessous -

var typeorm = require("typeorm"); var EntitySchema = typeorm.EntitySchema; 

typeorm.createConnection({ 
   "type": "mysql", 
   "host": "localhost", 
   "port": 3306, 
   "username": "root", 
   "password": "123456", 
   "database": "typeorm_test_db",
   "synchronize": true, 
   "logging": false, 
   entities: [ new EntitySchema(require("./entity/student.json")) 
   ] 
}) 
.then(function(connection) { 
   return connection.getRepository("Student"); }) .then(function(studentRepository) { 
   var student = { 
      name: "Student1", 
      age: 18 
   }; 
   return studentRepository.save(student) .then(function(savedStudent) { console.log("Student has been successfully saved: ", savedStudent); 
   return studentRepository.find(); }) 
   .then(function(students) { console.log("All students: ", students); 
   return; 
   }) 
   .catch(function(error) { console.log("Error: ", error); return; 
   }) 
}) 
.catch(function(error) { console.log("Error: ", error) 
   return; });

Ici,

Nous avons utilisé les mêmes méthodes typeORM à l'exception des modifications mentionnées ci-dessous,

  • Utilisé EntitySchema pour configurer l'entité étudiante.
  • Utilisation des blocs de concept JavaScript Promise (then / catch / finally).

Maintenant, exécutez l'application en utilisant la commande ci-dessous -

npm start

L'application insère les informations sur les étudiants dans la base de données, puis récupère tous les étudiants de la base de données et les affiche dans la console comme indiqué ci-dessous -

> [email protected] start /path/to/workspace/typeorm-javascript-student-app

> node src/index.js 

Student has been successfully saved: { name: 'Student1', age: 18, id: 1 } All students: [ { id: 1, name: 'Student1', age: 18 } ]