Bonjour à tous,
Dans le cadre d'une mise en place d'un projet JS avec le framework Vue.js, j'aimerais travaillé avec une base local comme Sqlite.
Pour cela j'utilise la librairie Sequelize.
Néanmoins je ne souhaite pas utiliser directement cette librairie dans mes scripts de vue afin d'alléger le code et de centraliser la logique autour de cette librairie.
Pour cela j'ai décidé de créer un "wrapper" (fichier js qui sera appelé dans mes scripts vue) qui utilise réellement lui de son coté la librairie Sequelize (et non les vues).
Néanmoins je n'arrive pas à inscrire de données dans un table, ni même récupérer des données.
Pourtant j'arrive à établir une connexion à cette base de données.
Étant encore plutôt novice en JavaScript, je pense avoir des soucis dans la logique de création de mon wrapper et j'aurais apprécié de l'aide avec un coup d’œil rapide sur mon code et des conseils.
Mon wrapper est un objet qui contiendra l'ensemble de l'utilisation de Sequelize.
Dois-je, a chaque fonction, retourné l'instance de l'objet lui-même ?
Entre 2 appels à ce wrapper, garderais-je une instance active ?
Quel type de concept dois-je respecter ou sur lesquels m'appuyer pour construire un tel wrapper ?
Voici mon code de test ce trouvant dans la partie script d'une vue.js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 import { sequelizeWrap } from '../../sequelize/sequelize' console.log(sequelizeWrap.test) console.log(sequelizeWrap.create()) console.log(sequelizeWrap.auth()) console.log(sequelizeWrap.User()) console.log(sequelizeWrap.userSync()) console.log(sequelizeWrap.userSync().findAll()) console.log(sequelizeWrap.User.findAll())
Voici mon wrapper :
Merci d'avance pour vos éclairages et précieux conseils.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 const Sequelize = require('sequelize') export let sequelizeWrap = { test: function () { console.log('ici2') }, sequelize: null, create: function () { this.sequelize = new Sequelize('database', 'username', 'password', { host: 'localhost', dialect: 'sqlite', operatorsAliases: false, pool: { max: 5, min: 0, acquire: 30000, idle: 10000 }, // SQLite only storage: './database.sqlite' }) }, auth: function () { this.sequelize .authenticate() .then(() => { console.log('Connection has been established successfully.') }) .catch(err => { console.error('Unable to connect to the database:', err) }) }, User: function () { this.sequelize.define('User', { firstName: { type: Sequelize.STRING }, lastName: { type: Sequelize.STRING } }) }, userSync: function () { this.User.sync({force: true}).then(() => { return this.User.create({ firstName: 'John', lastName: 'Hancock' }) }) } } // Or you can simply use a connection uri // const sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname')
Partager