Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

253
Vistas
nodejs: tabla de jade - con Dynamic json desde el controlador

Tengo un programa nodejs simple, donde estoy recuperando los datos de mongodb usando Mongoose y quería mostrarlos como una tabla usando jade. Aquí está mi código:

Código del lado del servidor

 router.get('/', function(req, res, next) { //Query the user table user.find(function(err, result){ res.render('index',{users: JSON.stringify(result)}); }); });

código de jade

 div form(action='/',method='post') div(data-role='fieldcontain') fieldset(data-role='controlgroup') label(for='name') User Name input(id='name',type='text',value='',placeholder='Type your username here',name='name') div(data-role='fieldcontain') fieldset(data-type='vertical', data-role='controlgroup') label(for='fname') First Name input(id='fname',type='text',value='',placeholder='Type your first name here',name='fname') div(data-role='fieldcontain') fieldset(data-type='vertical', data-role='controlgroup') label(for='lname') Last Name input(id='lname',type='text',value='',placeholder='Type your last name here',name='lname') div(data-role='fieldcontain') input(type='submit',value='Create Profile',data-transition='fade', data-theme='c') - var userlist = {users} div table thead tr: th Users tbody each user in userlist tr td=user

Y mi modelo se ve así:

 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var user = new Schema({ username: String, firstname: String, lastname: String }); module.exports = mongoose.model('user', user);

El problema es que jade no lee el mensaje de la ruta a jade como JSON. Intenté imprimir #{usuarios} e imprime el resultado completo. Sin embargo, en cada ciclo, no es posible separar los dos registros.

Echo un vistazo a las preguntas:

Enlace de anclaje estático de Jade

Jade iterando una matriz

Tabla HTML en Jade

De alguna manera, siento que el mensaje no se recibe como JSON y, por lo tanto, el problema. Por favor, ¿puedes ayudar?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Probé tu código sin JSON. Stringify está funcionando bien.

Suponiendo que tiene registros para el usuario en su base de datos.

 router.get('/', function(req, res, next) { User.find(function(err,result){ console.log(result); res.render('index', { title: 'Express' , users: result }); }); });

aquí está el código en index.jade

 extends layout block content h1= title p Welcome to #{title} -var userlist = users div table.table.table-hover thead tr: th Users tbody each user in users tr td=user.firstname td=user.lastname td=user.username

cuando inicié mi servidor y presioné la página de índice, obtuve el siguiente resultado.

ingrese la descripción de la imagen aquí

Pero cuando hice lo mismo con JSON.stringyfy() no se mostró nada aquí, pero los datos están ahí.

¡¡Espero eso ayude!! Buena suerte :)

over 4 years ago · Santiago Trujillo Denunciar

0

Si desea crear automáticamente sus encabezados sin especificar los campos:

Código del lado del servidor

 router.get('/', function (req, res, next) { user .find({}) .select('-_id -__v') // This removes hidden MongoDB fields .lean() // This removes all mongoose fields and return a simple javascript object .then(result => { // I'm using promises, but you can use callbacks as well console.log(result); res.render('index', { title: 'Express', users: result }); }) .catch(ex => console.log(ex)); });

código de jade

 extends layout block content h1= title p Welcome to #{title} -var firstUser = users[0] || undefined; if firstUser div h1 Users table.table.table-hover thead tr each value, key in firstUser th=key tbody each user in users tr each value, key in user td=value
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda