Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

278
Visualizações
Cómo seguir la arquitectura MVC en la aplicación web usando Node, Express, Postgresql

No estoy seguro de cómo aplicar la arquitectura MVC a mi aplicación web de nodo, en concreto, separando el modelo del controlador.

La estructura actual tiene las vistas separadas correctamente (todos mis archivos .ejs) y luego supongo que mi app.js es como el controlador, ya que contiene todas las rutas para responder a las solicitudes http. Luego, las rutas se manejan en un archivo queries.js , que es donde consulto mi base de datos usando node-postgres (la mayoría de las vistas representadas muestran información de la base de datos o muestran formularios para que el usuario pueda insertar datos en la base de datos). ¿Debería hacer esto de manera diferente, o más específicamente, debería intentar crear un modelo que contenga datos sin procesar de la base de datos y hacer que los controladores de ruta manipulen estos datos en lugar de consultar directamente la base de datos (no estoy seguro de cómo manejaría la inserción en la base de datos entonces ...)? Solo me preocupa que la forma actual en que he estructurado mi aplicación web haga que sea difícil de administrar a medida que crece y que otros la entiendan y agreguen.

Este es un ejemplo de cómo está estructurada actualmente la aplicación web: digamos que un usuario hace clic en un botón para mostrar todos los pedidos activos, mi archivo app.js se vería así

 const db = require('./queries') app.get('/activeorders', db.getActiveOrders)

Mi archivo queries.js manejaría esta ruta así:

 const Pool = require('pg').Pool const pool = new Pool({ user: process.env.USER, host: process.env.HOST, database: process.env.DB, password: process.env.PASSWORD, port: process.env.PORT, }) const getActiveOrders = (request, response) => { const queryOrders = 'SELECT * FROM orders WHERE complete=0 ORDER BY date_rec DESC;'; pool.query(queryOrders, (error, results) => { if(error) { throw error } var ordersObj = results.rows; response.render('pages/activeorders', { ordersObj: ordersObj }) }) } module.exports = { getActiveOrders, }

Como se puede ver en el controlador, se consulta la base de datos y se almacenan los resultados en un objeto que luego se pasa al archivo activeorders.ejs cuando se procesa.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

En el patrón MVC, dividimos cada parte de la aplicación porque este enfoque del desarrollo de software para necesidades complejas conecta la implementación a un modelo en evolución.

Le sugiero que visite sample-mvc-express-postgres para comprender el código de estructura

Si está interesado en el patrón de diseño, visite https://dev.to/salah856/implementing-domain-driven-design-part-i-5a72 . Este enlace explica cómo usar DDD en su aplicación y muestra cómo diseñar cada capa. de la aplicación

about 4 years ago · Juan Pablo Isaza Relatório

0

Tal vez usando un middleware que le permita crear una API desde una base de datos Postgresql.

Cualquier cambio realizado en las bases de datos se propagará y estará disponible para su API. También permitirá mucha modularidad a posibles filtros/seleccionar...

Y para consultas complejas, DBA podrá desarrollar procesos almacenados disponibles para todos por API. Esa es la capa Modelo . Solo SQL expuesto a través de un middleware.

El controlador será la forma en que realizó sus llamadas API y transformaciones de datos si es necesario para actualizar los datos en función de su Vista

Abstraer la capa del modelo con un middleware definitivamente es una gran economía de tiempo.

Para las opciones de postgres majors: postgres y pgrest

about 4 years ago · Juan Pablo Isaza Relatório

0

Establezca app.js como archivo raíz y cree un controlador y una carpeta modelo. Defina todos los modelos en la carpeta del model , mientras que en el controlador primero importe los controladores de archivos del modelo y cree todas las funciones de API o consultas. Luego, en el controlador de funciones del controlador de importación de archivos raíz app.js y ejecútelo.

esta imagen contiene estructura de carpetas

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda