När vi skapar mer och mer kod i en applikation bör vi dela in den i mindre logiska delar för att skapa en bättre överblick.
En modul kan innehålla och exponera en en eller flera funktioner, objekt, variabler, eller en klass.
En modul kan exporteras från en js-fil och importeras till en annan js-fil.
När man vill förändra sin kod så att den följer en bättre struktur och mindre upprepning kallas det för att refaktorisera (eng. refactoring).
Vi använder oss av denna syntax för att skriva en funktion då det förenklar våra exporter av funktioner
const sayHi = function() {
console.log("hej hej.."):
}
const sayHi = function() {
console.log("Hej hej...");
}
module.exports = sayHi;
// Importera
const sayHi = require("hello.js");
/* Funktionen som importerats
från annan fil kan användas här*/
sayHi();
Exportera funktionen
Importera sayHi och sayGoodbye från hello.js
ALTERNATIV 1
exports.sayHi = function() {
console.log("Hej hej...");
}
exports.sayGoodBye = function() {
console.log("Hejdå...");
}
// Importera
const {sayHi, sayGoodbye] =
require("hello.js");
/* Funktionen som importerats
från annan fil kan användas här*/
sayHi();
Smidigare när vi vill exportera flera funktioner
Exportera funktionen
Exportera funktionen
Importera sayHi och sayGoodbye från hello.js
ALTERNATIV 2
1. Skapa mappen routes och filen postRoutes.js
2. Lägger över de 7 routes för post till postRoutes.js
3. Skapa en s.k routehanterare som kan
hantera alla routes i postRoutes.js, importera
även express.
const express = require("express");
// Routehanterare
const router = express.Router();
Lägg högst upp
postRoutes.js
4. Byt ut app till router
5. Ta bort sökvägen post
5. Exportera router längs ner i filen
// Visar alla inlägg
router.get("/", function (request, response) {
response.send("Här ska alla inlägg visas");
});
// Visar ett formulär för att skapa nytt ett inlägg
router.get("/new", function (request, response) {
response.send("På den här URI:en ska ett formulär visas");
});
// Skapa ett inlägg
app.post("/", function (request, response) {
response.send("Här kommer du kunna skapa ett inlägg");
});
module.exports = router;
+ de fyra till
exportera sist i filen
Byt app till router
postRoutes.js
Ta bort post
6. Importera postRoutes i app.js
7. Samt lägga använda våra postRoutes i applikation med app.use()
// Hämtar postRoutes
const postRoutes = require("./routes/postRoutes.js");
// Middleware
app.use("/post", postRoutes);
app.js
Här använder vi sökvägen istället
1. Skapa mappen controllers och filen postController.js
2. Gå till postRoutes.js och plocka ut funktionerna för Create, Read, Update, Delete
// Skapa ett inlägg (CREATE)
app.post("/", function (request, response) {
response.send("Skapa ett inlägg");
});
Alltså denna funktion
// Skapa ett inlägg (CREATE)
exports.createPost = function(request, response) {
response.send("Skapa ett inlägg");
};
// Skapa ett inlägg (CREATE)
const createPost = require("./../controllers/postController.js");
app.post("/", createPost);
postController.js
postRoutes.js
+ fyra till :-)
+ fyra till :-)
Här kommer vi lägga in att skapa inlägg till mongodDB databas