Bonjour,
Je suis débutant en JavaScript et donc forcément avec Node.js.

Dans le but d'apprendre node je me suis mis en tête de créer une application de bureau.
J'ai donc suivis le tuto de Graf' sur NodeWebkit.

Après pas mal de recherche je ne trouve rien de vraiment concluent pour répondre à mes questions :

  • Est-ce que MongoDB peut être utiliser en tant que base de donnée intégrer ? (Sans utiliser la connexion internet de l'utilisateur j'entend).
  • Y'a-t-il des critères particulier à prendre en compte pour choisir son "gestionnaire" de bdd ?

J'ai par exemple voulu commencer avec NeDB qui m'avait l'air simple d'utilisation.
Mais d'après ce que j'ai compris on ne peut l'utiliser que dans une console.

Si vous auriez par exemple des tutos (en anglais comme en français).
Je suis preneur.

Merci d'avance pour vos futur réponses.

4 réponses


TL;DR : Tu peux utiliser n'importe quel SGBD pour ton application.

Dès lors, pourquoi en choisir une plus qu'une autre ?

  • Les dépendances : Est-ce que tu penses pouvoir bundle ton application avec le binaire d'un serveur du SGBD que tu veux utiliser et pouvoir gérer les mises à jour de celui-ci en plus de ton application ?
  • Les performances : Tu peux choisir de déployer un sereurs MySQL avec ton application, et de lui fournir une configuration simple. Mais qu'est-ce que qui t'assure que tout le monde pourra faire tourner une instance du serveur que tu proposes (par exemple les 500Mo de RAM requis par la configuration par défaut).
  • Le besoin : Est-ce que tu as forcément besoin d'un langage relationnel pour faire des requêtes sur ton jeu de données ? Ou est-ce qu'un simple « key-value store » peut te suffir ? Est-ce qu'il y a besoin que celui-ci mette en place des statégies face aux volumes de données qu'il va traîter ou stocker ?

Ce sont ces arguments qui font que les gens se penchent régulièrement vers des bases de données « embarquées » comme NeDB, SQLite ou juste une sérialisation des objets nécessaires au bon fonctionnement de ton application dans le cas d'applications de bureau - comme celle que tu souhaites développer.

Laznet
Auteur

@Flan, Le truc c'est que j'ai tester pas mal de techno. J'ai tenter de suivre des tutos sur ces dernière. Et si il se trouve que par rapport à mon niveau avec le js. Je trouve ça compliquer.

Connaitrais-tu par exemple un SGBD simple ressemblant à MySQL (enfin, a sa syntaxe avec php). Et pour couronner le tout, qu'il soit embarquer ?

Ou aurais-tu un tuto simple pour comprendre la gestion de bdd avec node. (Anglais ou Français).

un SGBD simple ressemblant à MySQL

Donc tu cherches une base de données relationnelle (est-ce que c'est par choix ou par méconnaissance des différentes possibilités ?). Tu peux regarder du côté de SQLite qui ressemblera beaucoup à MySQL (à quelques fonctionalités près, comme les AFTER, la réplication…). Tu n'as pas besoin de serveur pour SQLite - tout est dans un fichier et tu as des bindings node.js qui te permettent de manipuler cette base. C'est la solution la plus simple à mettre en place (et à utiliser).

Tu trouveras en deux secondes la librairie qui va bien pour SQLite en node et le tutoriel associé !

mon niveau avec le js

à sa syntaxe avec PHP

Ne cherche pas à pallier à tes problèmes dans un langage en te reposant sur quelque chose que tu connais mieux. Node et PHP sont vraiment deux langages différents et tu rates beaucoup de choses en tenrant de retrouver des points du second dans le premier. Bosse un peu plus le javascript, même sans aller jusqu'à ES6. Tu peux te remettre à niveau en même pas un week-end et tester quelques librairies devenues des standards ; ça te sera vraiment bénéfique pour appréhender tes nouveaux projets avec sérénité — et productivité :-)

Laznet
Auteur

Merci en tout cas pour ces conseils. Et pour tes encouragements.