DEV Community

Cover image for 74-Nodejs Course 2023: Break IV: Paths Functions
Hasan Zohdy
Hasan Zohdy

Posted on

74-Nodejs Course 2023: Break IV: Paths Functions

Let's move to another part, paths we already have rootPath function utility which returns the root path of current project, but we need to add more functions to it, so we can use it in our project.

Paths functions

Here are our functions that we need to have so far to be used easier later.

  • storagePath: Receives a relative path to the storage folder and returns the absolute path to it.
  • uploadsPath: Receives a relative path to the uploads folder and returns the absolute path to it.
  • publicPath: Receives a relative path to the public folder and returns the absolute path to it.
  • cachePath: Receives a relative path to the cache folder and returns the absolute path to it.

Seems easy, right? yup, no tricks in this article, simple and straight forward.

Implementation

Now create paths.ts file inside src/utils folder, if the folder doesn't exist, create it.

// src/utils/paths.ts
import { rootPath } from "@mongez/node";

/**
 * Get the absolute path to the storage folder to the given path
 *
 * If no path is given, it will return the absolute path to the storage folder
 */
export function storagePath(relativePath = "") {
  return rootPath("storage", relativePath);
}

/**
 * Get the absolute path to the uploads folder to the given path
 *
 * If no path is given, it will return the absolute path to the uploads folder
 */
export function uploadsPath(relativePath = "") {
  return rootPath("storage", "uploads", relativePath);
}

/**
 * Get the absolute path to the public folder to the given path
 *
 * If no path is given, it will return the absolute path to the public folder
 */
export function publicPath(relativePath = "") {
  return rootPath("public", relativePath);
}

/**
 * Get the absolute path to the cache folder to the given path
 *
 * If no path is given, it will return the absolute path to the cache folder
 */
export function cachePath(relativePath = "") {
  return rootPath("storage", "cache", relativePath);
}
Enter fullscreen mode Exit fullscreen mode

Now we created the functions, but let's see why would we need these functions, let's start with the storage directory.

Storage directory

The storage directory is used to store all files that need to be stored, such as any uploaded files, caches and any files that needs to be hidden in some way.

So basically this folder stores anything that is not a code.

Uploads directory

The uploads directory is used to store all uploaded files, such as images, videos, documents, etc.

This folder will be located in the storage directory but we created a function to get the absolute path to it.

Public directory

The public directory is used to store all files that are public, such as images, videos, documents, etc.

We can store it in storage directory, or just create a public directory and store it there, it's up to you.

Cache directory

This directory stores all caches, such as images, html content (Generated pages for example) and so on.

🎨 Conclusion

We just created a utility file that is called paths to add our functions to it, so we can use it later in our project, these functions are used to get the absolute path to the storage, uploads, public and cache directories.

☕♨️ Buy me a Coffee ♨️☕

If you enjoy my articles and see it useful to you, you may buy me a coffee, it will help me to keep going and keep creating more content.

🚀 Project Repository

You can find the latest updates of this project on Github

😍 Join our community

Join our community on Discord to get help and support (Node Js 2023 Channel).

🎞️ Video Course (Arabic Voice)

If you want to learn this course in video format, you can find it on Youtube, the course is in Arabic language.

📚 Bonus Content 📚

You may have a look at these articles, it will definitely boost your knowledge and productivity.

General Topics

Packages & Libraries

React Js Packages

Courses (Articles)

Top comments (0)