Skip to main content

How to upload images in mongoDB with express js and multer

upload images in mongoDB with express js and multer

 

Hi. welcome to another learning session on trycoder.com. Today, we are going to learn how to upload images in mongo database using express and multer middleware. This tutorial requires basic knowledge in express js and mongoose. If you are a total beginner, I recommend you check our past tutorials both on this website and our Youtube channel.

Multer is a module used to upload files like images and other form of files using node js. There are equally other alternatives to multer like gridFS and the formidable module.

Have you ever wondered how images are uploaded to the server or database?

Lets figure it out!, When the images are submitted from the form on the front end, they need to be stored in a folder available in the server. The path to that file is then uploaded to the database which when called, will point out to the path and display the image like when adding images in html using a source path.

If you got the point above, then you have gotten the whole idea.

Let us look a small example using express js, multer and EJS (embedded JavaScript template engine) which will be used as our frontend.

In this case we will create a folder in our project directory with name “uploads”, create a route to display the form which we will use to submit image file and finally create a route for our post request.

Before we write some code, we need to install the multer module. Just navigate to your project directory from your command line and run the command:

npm install multer

ofcourse! ensure you already have node js, express, mongoose and ejs modules. The command above will download and install multer in your npm modules folder.

setting up multer to upload an image file is very simple.

  • We need to set up the destination of the image file and how the file name should be stored (multer storage) Remember we said the image file is first of all uploaded in a server folder and then before saving the path in the database.
  • So lastly, the schema will then be created and then the post route setup too. We also need to ensure the folder “uploads” is made public by using express.static() method.
  • NB: multer acceps data from forms with enctype="multipart/form-data"

server.js
upload images in mongoDB with express js and multer


Note the following:

  • In the schema, the image data type is String.
  • To include the file to be uploaded in the post route, notice the parameter upload.single() which gives the opportunity to upload one image.
  • Multer has other parameters to suit the interest of a project and can be read their npm official documentation.
  • The properties of the image file is stored in req.file

form.ejs

upload images in mongoDB with express js and multer


upload images in mongoDB with express js and multer

After the file will be submitted, the server will handle the post request and save it in mongo database. 

Now let us look at the database and see if our code was successful.

upload images in mongoDB with express js and multer
upload images in mongoDB with express js and multer


Comments

Popular posts from this blog

JavaScript Functions

  Hi there, and welcome to another exciting lesson on JavaScript. If this is your first time here, please do well to check out our previous lessons. In the previous lesson, we were discussing JavaScript math methods. It was very intuitive as we got to learn how to use the various math methods. To proceed, we shall be looking at JavaScript functions.  A function in JavaScript like in every other programming language could be defined as a block of code that is written to perform a particular task, and this function is usually invoked or called before it is being implemented. We have been talking about methods throughout the previous lessons right. Do you know that those methods are actually functions? Yes they are functions. You can now have an overview of the importance of functions in every programming language. How do we create a function in JS? To create a function, you follow the format function functionName(Argument) {//Block of code }. Some functions do have a return val...

JavaScript Math Methods

Hello everyone, and welcome to another exciting JavaScript lesson. In the last lessons you have been seeing other methods being used in JS (for example, the string methods). We shall go further into exploring other methods. This time, it’s going to be math methods. Do not move an inch because it’s going to be a very exciting. Before we look at what a math method is, let’s have an overview of math objects. A math object in JavaScript is a static built-in object that includes properties and methods used in performing mathematical tasks. Talking about math properties, they have the syntax Math.property . Some examples are Math.E that returns Euler’s number, Math.PI that returns PI, Math.LN2 that returns the natural logarithm of 2, and many others. The various JavaScript methods contained in the math object, thus, make mathematical operations easier and reduce effort as well as time in math-oriented programming. Some JS methods include abs( ), ceil( ), cos( ), sqrt( ), pow( ), log( ) ...

How to generate random numbers using NumP1

Hello. Welcome to another edition on this platform. For more better understanding, do checkout our YouTube channel to get the video tutorial. In this article of today, we are going to see how to generate random numbers using any of the following methods: Generating a random number Generating a random float and integer Generating random number arrays Generating random number from an array What is a random number? This is a number which cannot be predicted before its occurrence. This number might not different every time. Programmatically, they are two categories of random numbers:     Pseudo-Random numbers       True Random numbers. Just as programs which are written by programmers are a set of instructions, we must follow an algorithm to generate random numbers. Random numbers which are generated using an algorithm are called Pseudo-Random numbers. To generate a true random number, it is important to get the data from sources such as the keyboards, mou...