Hola, recién estoy comenzando con la programación y estoy tratando de crear un blog muy simple con Express.js y Mongoose. Con este código, estoy imprimiendo 6 artículos de mi base de datos (esquema de artículo simple: título, contenido y usuario) en la página principal de mi blog. Pero, ¿cómo no puedo mostrar todo el contenido sino solo las 100 letras iniciales del contenido? ¿Cómo puedo pasarlo a la vista?
index: (req, res) => { Articles.find({}).limit(6).populate('author').then(articles => { res.render('home/index', { articles: articles}) })En lugar de esto:
res.render('home/index', { articles: articles });tendrías que usar:
res.render('home/index', { articles: articles.map(shorten) }); e implemente la función shorten() de la siguiente manera:
function shorten(article) { return { title: article.title, content. article.content.slice(0, 100), }; } Simplemente cambie los nombres clave para el title y el content a lo que esté usando porque no dijo nada sobre cómo se ven sus datos.
Alternativamente, puede cambiar esto:
res.render('home/index', { articles: articles.map(shorten) });a algo como:
articles.forEach(article => { article.content = article.content.slice(0, 100); }); res.render('home/index', { articles: articles }); si está seguro de que no necesitará los valores originales en su matriz de articles más adelante.