Estoy tratando de crear un objeto de publicación que almacene la identificación, el título y los comentarios asociados con la publicación. Por ahora, estoy almacenando datos en una variable. Cuando inicializo esa variable (Línea 7), publicaciones = { } , funciona pero para publicaciones = [ ] devuelve una matriz vacía a la interfaz.
const express = require('express'); const bodyParser = require('body-parser'); const cors = require('cors'); const app = express(); app.use(bodyParser.json()); app.use(cors()); const posts = []; app.get('/posts', (req, res) => { console.log(posts); res.send(posts); }); app.post('/events', (req, res) => { const { type, data } = req.body; if (type == 'PostCreated') { const { id, title } = data; posts[id] = { id, title, comments: [], }; } if (type == 'CommentCreated') { const { id, content, postId } = data; const post = posts[postId]; post.comments.push({ id, content }); } res.send({ status: 'Event Received' }); }); app.listen(4002, (req, res) => { console.log('Listening on Port 4002'); });las posts pueden ser una matriz si se muta como una matriz, pero si el envío está obligado a enumerar un parámetro de matriz para serializarlo. Un accesorio que se establece en la matriz como posts["some id"] no contará en longitud, no se enumerará cuando se serialice.
if (type == 'PostCreated') { const { id, title } = data; // if posts is an array posts.push({ id, title, comments: [], }); }Para ver que no funciona...
let props = []; let id = "some id"; props[id] = "I'll be lost in serialization"; console.log(props.length); // 0