Express 4 : séparation MVC
Bonjour, je tente de me mettre à Node.js à travers le framework Express 4, mais en plus de la découverte d'un nouvel environnement j'ai des lacunes en javascript.
Il existe un générateur d’applications pour Express qui - s'il propose une base pour l'architecture d'une app - ne propose pas de découpage MVC : il sépare seulement les vues du reste de l'application entreposé dans un dossier "routes". Je cherche donc à désolidariser la logique métier du contrôleur.
J'y suis presque, mais je bloque sur un point. Voilà où j'en suis pour le fichier dédié aux requêtes :
Code:
1 2 3 4 5 6 7 8 9 10 11
| // models/articles.js
const db = require('../database')
const getArticle = (req, res, next) => db.one('SELECT * FROM article WHERE id = $1', req.params.id)
.then(data => {
res.render('article', data) // -> je cherche à déplacer cette ligne dans le fichier "controllers/article.js"
})
.catch(error => {
next()
})
module.exports = { getArticle: getArticle } |
Et mon fichier contrôleur pour les articles :
Code:
1 2 3 4 5 6 7 8 9 10
| // controllers/articles.js
const express = require('express')
const router = express.Router()
const { getArticle } = require('../models/article')
router.get('/article/:id([0-9]{1,7})', (req, res, next) => { // ex: '/article/1'
getArticle(req, res, next)
// <- c'est ici que je voudrais intégrer res.render(), à la place de la fonction getArticle(), mais je ne sais comment
})
module.exports = router |
Merci pour vos éventuelles suggestions.