Bonjour, bonsoir
Je planche sur un problème depuis quelques jours maintenant et j'aimerais avoir l'avis de gens plus compétent que moi. Étant nouveaux avec Typescript, je n'arrive pas à insérer une donnée venant d'une base de donnée (SQLITE3) dans un objet Typescript. Je cherche simplement un faire un CRUD, mon Create fonctionne comme il faut mais le Read me pose problème. Je vous met le code de ma classe avec mes 2 méthodes:
et je vous donne également ma classe Personnage:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database('RPG.db'); import Personnage from "./personnage" export default class DaoPersonnage { create(obj: Personnage) { var p = new Personnage.prototype.persoObj(obj); db.serialize(function() { var stmt = db.prepare("INSERT INTO joueurs VALUES (?, ?, ?)"); stmt.run(p.id, p.pseudo, p.lvl); stmt.finalize(); }); } read(myID: number) { var p= new Personnage(); db.serialize(() => { db.each("SELECT rowid AS id, pseudo, level FROM joueurs WHERE id=" + myID, function(err,row){ if (err === null) { p.id = row.id; p.pseudo = row.pseudo; p.lvl = row.level; p.toString(); // affiche mes 3 variables correctement console.log("row.id = " + p.id); // affiche l'id du personnage console.log("row.pseudo = " + p.pseudo); // affiche le pseudo du personnage console.log("row.level = " + p.lvl); // affiche le level du personnage console.log("Test 1"); } else console.log(err); }); }); p.toString(); // affiche undefined pour chaque variables return p; }
Voilà et du coup j'aimerai que quand je fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 export default class Personnage { id: number; pseudo: string; lvl: number; constructor() { } public perso(id: number, pseudo: string, lvl: number){ this.id = id; this.pseudo = pseudo; this.lvl = lvl; } public persoObj(p:Personnage) { this.id = p.id; this.pseudo = p.pseudo; this.lvl = p.lvl; } public toString() { console.log("toString: ID="+this.id+" pseudo="+this.pseudo+" lvl="+this.lvl); }
cela m'affiche l'id du personnage et non undefined
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var dao = new DaoPersonnage(); var read = dao.read(msg.author.id); // "msg.author.id" est une commande de l'API Discord.js console.log("read = " + read.id); //affiche undefined
J'espère que je n'ai rien oublié pour les infos et que quelqu'un pourra m'aider.
Partager