Informations généralesnode.js/application expresse - où dois-je mettre la logique de connexion à la base de données?
Je viens de créer ma première application expresse. Je peux voir que cela a créé un tas de fichiers et la structure de dossiers par défaut. C'est ce que ma structure d'application ressemble actuellement:
[email protected]:/var/www/html/nodejs_samples/tutorial1$ ls -lah
total 36K
drwxr-xr-x 7 me me 4.0K Sep 28 09:26 .
drwxrwxr-x 5 me me 4.0K Sep 28 08:45 ..
-rw-rw-r-- 1 me me 1.5K Sep 28 08:45 app.js
drwxr-xr-x 2 me me 4.0K Sep 28 09:20 bin
drwxrwxr-x 96 me me 4.0K Sep 28 09:26 node_modules
-rw-rw-r-- 1 me me 352 Sep 28 09:26 package.json
drwxr-xr-x 5 me me 4.0K Sep 28 08:45 public
drwxr-xr-x 2 me me 4.0K Sep 28 09:26 routes
drwxr-xr-x 2 me me 4.0K Sep 28 08:45 views
[email protected]:/var/www/html/nodejs_samples/tutorial1$
Objectif
Je veux créer une nouvelle route appelée « widgets » et lorsque la méthode GET est invoquée, je dois appeler une base de données Redis et exécutez une requête. L'URL que je veux utiliser pour déclencher ce get est quelque chose comme ceci:
http://myserver/tutorial1/widgets/
ou
http://myserver/tutorial1/widgets/12345
où est la clé 12345 widget que je veux interroger.
Ce que je l'ai fait jusqu'à présent
J'ai trouvé ce document qui explique comment connecter/interroger une base de données Redis: http://expressjs.com/en/guide/database-integration.html#redis
J'ai aussi copié les routes/users.js que l'express générateur créé "gratuitement" pour moi à routes/widgets.js comme point de départ.
C'est ce que mes itinéraires/fichier widgets.js ressemble:
[email protected]:/var/www/html/nodejs_samples/tutorial1$ cat routes/widgets.js
var express = require('express');
var router = express.Router();
/* GET widgets listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
Question
Il est pas clair pour moi où je dois ajouter la logique de connexion de base de données et la logique de la requête. Je suis habitué à MVC où vous divisez toute la logique de base de données dans le modèle. Puis-je tout mettre dans le fichier route/widgets.js?
Si cela vous aide, voici un lien vers mon fichier app.js: http://pastebin.com/hAe5mvwt. J'ai ajouté 2 lignes - ligne 10 et 28.
Des suggestions ou des liens vers de bons tutoriels seraient appréciés.
Vous * pouvez *, mais il est couplé directement au gestionnaire d'itinéraire. C'est bien de commencer comme ça, mais je préfère une séparation plus forte des préoccupations. En fin de compte cela se résume à l'opinion: il n'y a pas de «bonne» façon de casser la fonctionnalité. –