Tengo una base de datos existente llamada 'mig' que consiste en una colección llamada 'Empleado', probé el siguiente código pero envía los datos en formato json sin formato al navegador al abrir localhost: 3000

var express = require('express')
var assert = require('assert')
var bodyParser = require('body-parser')
var MongoClient = require('mongodb').MongoClient
var url = 'mongodb://localhost:27017/mig'
var app = express()

app.use(bodyParser.urlencoded({ extended: true }))

MongoClient.connect(url, { useNewUrlParser: true })
    .then(client => {
        const db = client.db('mig');
        const collection = db.collection('Employee');
        app.locals.collection = collection;
        app.listen(3000, () => console.log('REST API running on port 3000'));

        process.on('SIGINT', () => {
            client.close();
            process.exit();
        });

    }).catch(error => console.error(error));

app.get('/', (req, res) => {
    const collection = req.app.locals.collection;
    collection.find({}).toArray().then
    (response => res.status(200).json(response)).catch(error => console.error(error));
})

Necesito saber cómo puedo representar los datos de esta colección en el navegador en un formato html adecuado. Busqué mucho en los últimos días, tal vez las palabras clave se equivocaron o algo probable. Por favor ayudame con este problema.

P.s. - No sé si puedo usar mangosta porque el esquema para la colección existente será muy difícil de definir ya que contiene 10000 filas frente a 1000 columnas. Intenta proporcionarme una solución, que será realmente útil.

Gracias.

1
Neelabh 10 feb. 2020 a las 10:13

2 respuestas

La mejor respuesta

@Neelabh, lamenta haber publicado una respuesta Python antes. Puede usar los motores Mustache o Jade. Ejemplo para Jade Jade a la mesa

Ejemplo de tabla de jade:

    div
     table
      thead
        tr
          th Col1
          th Col2
          th Col3
      tbody
        each srec in places
         tr
          td #{srec.item}
          td #{srec.item_desc}
          td #{srec.status_value}

Enlace de referencia:

Nota: es posible que desee reducir el número de columnas (de 1000) a columnas obligatorias fijas como 10-30. Y tenga un selector de opciones en la interfaz de usuario para elegir columnas particulares.

1
kn_pavan 10 feb. 2020 a las 07:44

Si desea enviar html al navegador con sus datos interpolados dentro, debe usar un motor de plantillas. Moustache y EJS son buenas opciones compatibles con express para ayudarlo a hacerlo.

Con el motor de plantillas puede insertar los datos de su base de datos en el archivo y html antes de enviarlo al navegador.

Espero que esto sea útil

2
Deschant Kounou 10 feb. 2020 a las 07:22