Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

254
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!