Detta koncept är centrala i relationsdatabaser och kallas relationsmodellen. Det är även användbart i NoSQL databaser.
// Definerar vår schema för kommentarermodellen
const commentSchema = new mongoose.Schema({
text: String,
author: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
}
});
En skriven text och författare till varje kommentar
ID hämtas från den användare som skriver kommentaren till inlägget
Användarnamnet hämtas från den användare som skriver kommentaren till inlägget
// Definerar vår postschema
const postSchema = new mongoose.Schema({
title: String,
image: String,
body: String,
author: {
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
},
comments: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Comment"
}]
});
En författare till varje inlägg
ID och användarnamn hämtas från den användare som skriver inlägget
Här kan vi lagra varje referens (ID) till kommentaren som skrivs till inlägget (som en array)
Sökväg | HTTP metod | Beskrivning |
---|---|---|
/posts/:id/comments/new | GET | Visa formulär för ny kommentar |
/posts/:id/comments | POST | Skapa ny kommentar |
För enkelhetens skull lägger vi denna i postRoutes.js
Visa formulär för att skapa ny kommentar (views/comments/new.js)
Visa varje ny kommentar (views/posts/show.ejs)
Let's code!