Intro
So we installed NodeJS on our machine.
Now we want to learn how to create our own module.
Write a simple script
- Open your terminal
 - Create a file named 
logger.js: 
touch logger.js
- Add this JavaScript code into it:
 
// the function should get a message type and a message
function logger(type, message) {
  let format;
  // different message for different message type
  switch (type) {
    case "error":
      format = `[ERROR] ${message}`;
      break;
    case "success":
      format = `[SUCCESS] ${message}`;
      break;
    default:
      format = `${message}`;
      break;
  }
  console.log(format);
}
// export the function using object property shorthand syntax
// to rename, use "newName: logger"
module.exports = {
  logger,
};
Note: For the sake of simplicity, this example is very lightweight, has no error/edge-case handling (e.g. no type), no separate file for the message types, no colors etc.
Write a second simple script
- Open your terminal
 - Create a file named 
index.js: 
touch index.js
- Add this JavaScript code into it:
 
// import the exported logger property
const { logger } = require("./logger.js");
// use the function
logger("error", "This is an error message.");
logger("success", "This is a success message");
Run it from the terminal
- Run it:
 
node index.js
- Result:
 
[ERROR] This is an error message.
[SUCCESS] This is a success message.
Next Steps
- Q: What happens, when you forget to add a 
type? How can you solve this? - Q: How can you improve this example by separating the message types into a constant?
 - Q: How can you improve this example by using an object as parameter instead of two strings?
 - Q: Do you need some additional error handling? (=> Docs)
 
Further Reading
Questions
- What is your favorite self-written module, that improves your developer life?