Skip to main content

Command Palette

Search for a command to run...

How to Create a Simple Blog Using MongoDB, Node.js, and Express

Step-by-Step Guide to Building a Basic Blog with MongoDB, Node.js, and Express: Learn the Fundamentals of Creating a Dynamic Web Application

Updated
3 min read
How to Create a Simple Blog Using MongoDB, Node.js, and Express
V

I'm Vaibhav, a ReactJS developer who loves sharing my knowledge and experience through blogs. Join me on HashCode to learn and grow together. Subscribe to my newsletter for the latest updates. Let's code!

Creating a Simple Blog using MongoDB, Node.js, and Express

Blogging has become a popular way for people to share their thoughts, experiences, and expertise with others. With the increasing popularity of blogging, it has become more important than ever to create a blog that stands out from the crowd. In this article, we will walk you through the process of creating a simple blog using MongoDB, Node.js, and Express.

Prerequisites:

To follow along with this tutorial, you will need to have the following:

  • Node.js installed on your computer

  • A basic understanding of MongoDB and Express.js

Step 1: Setting up the Project

To get started, create a new directory for your project and navigate to it in your terminal. Next, initialize a new Node.js project by running the following command:

npm init

Follow the prompts to create your package.json file. Once that is done, install the necessary packages by running the following command:

npm install express mongoose body-parser --save

Step 2: Creating the Blog Model

In this step, we will create a blog model using Mongoose. In your project directory, create a new file called blogModel.js and add the following code:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const blogSchema = new Schema({
  title: { type: String, required: true },
  body: { type: String, required: true },
  author: { type: String, required: true },
  date: { type: Date, default: Date.now }
});

const Blog = mongoose.model('Blog', blogSchema);

module.exports = Blog;

This will create a new Mongoose schema for our blog posts, with fields for title, body, author, and date.

Step 3: Creating the API Routes

In this step, we will create the API routes that will be used to interact with our blog model. Create a new file called blogRoutes.js and add the following code:

const express = require('express');
const router = express.Router();
const Blog = require('./blogModel');

router.get('/blogs', function(req, res, next) {
  Blog.find({}, function(err, blogs) {
    if (err) {
      res.send(err);
    }
    res.json(blogs);
  });
});

router.post('/blogs', function(req, res, next) {
  const newBlog = new Blog(req.body);
  newBlog.save(function(err, blog) {
    if (err) {
      res.send(err);
    }
    res.json(blog);
  });
});

module.exports = router;

This will create two API routes for getting and posting blog posts. The GET /blogs route will return all blog posts, and the POST /blogs route will create a new blog post.

Step 4: Creating the Server

In this step, we will create the server that will serve our API routes. Create a new file called server.js and add the following code:

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
const mongoDB = 'mongodb://localhost/blog';

mongoose.connect(mongoDB, { useNewUrlParser: true });
const db = mongoose.connection;
db.on('error', console.error.bind(console, 'MongoDB connection error:'));

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

const blogRoutes = require('./blogRoutes');
app.use('/api', blogRoutes);

app.listen(port, function() {
  console.log(`Server started on port ${port}`);
});

This will create an Express.js server that listens on port 3000 and serves our API routes. It also connects to our MongoDB database using Mongoose.

Step 5: Testing the API

To test our API, we can use a tool like Postman to make requests to our API routes. Send a POST request to http://localhost:3000/api/blogs with the following JSON body:

{
  "title": "My First Blog Post",
  "body": "This is my first blog post. It's not very long, but I hope you enjoy it!",
  "author": "John Doe"
}

This will create a new blog post in our database. Now, send a GET request to http://localhost:3000/api/blogs to retrieve all blog posts. You should see the blog post you just created.

Conclusion

In this tutorial, we have walked you through the process of creating a simple blog using MongoDB, Node.js, and Express. We have covered creating a blog model, creating API routes, creating a server, and testing the API. This is just the beginning, and there are many ways you can improve and expand upon this blog. But for now, you have a functional blog that you can use to share your thoughts with the world.