3.1.3 Backend Implementation (Node.js)

postsController.js (excerpt)::

exports.createPost = async (req, res) => {
  try {
    const { content, mediaURL } = req.body;
    const post = await Post.create({
      userId: req.user.id,
      content,
      mediaURL
    });
    res.status(201).json(post);
  } catch (err) {
    console.error(err);
    res.status(500).json({ error: 'Error creating post' });
  }
};

exports.getFeed = async (req, res) => {
  try {
    // Example: get latest posts, optionally filtered
    const posts = await Post.findAll({
      include: [User, Comment],
      order: [['createdAt', 'DESC']],
      limit: 50
    });
    res.json(posts);
  } catch (err) {
    console.error(err);
    res.status(500).json({ error: 'Error fetching feed' });
  }
};// frontend/src/features/posts/CreatePostForm.jsx

Real-Time Feed Updates

When a post is created, you can broadcast a newPost event via Socket.io to all connected feed subscribers:

io.emit('newPost', post);

React or iOS clients listening on newPost can prepend the new post to the local feed array.

Last updated