Я делаю веб-сайт, на котором отображаются мои проекты, связанные с их репозиторием на github.
Я пропустил файлы Pug из-за проблем с плагаизмом. (Это школьный проект)
Теперь мне нужно использовать маршрутизацию Dynami c. На основе идентификатора (от JSON) мне нужно отобразить желаемую версию шаблона проекта Pug, чтобы отобразить отдельный проект из проектов списка массивов в файле JSON. Затем вы сможете передать эти данные в шаблоны мопсов, добавив их как локальные в файл JS.
Мой вопрос: как связать файл JSON? или связать объекты массива?
Я серьезно пытался понять это часами, но безрезультатно.
Прошу прощения, если это был очевидный вопрос.
project.pug
h1 Title #{project_name}
p
| #{description}
h6 Technologies
ul
each project in projects
li= project.technologies
app. js
const express = require('express');
const json = require('./data.json');
const path = require('path');
const { query } = require('express');
const app = express();
const read = json();
//Not sure about this ????
const filepath = path.basename('Users/x/Downloads/sem 2/CSIS 3380 Web Programming JS/Session 4/Express Site/public');
app.set('view engine', 'pug');
app.use(express.static('public'));
// render "Home" page with locals set to data.projects
app.get('/index', (req, res) => {
res.render('Home', {
locals: {
'projects': projects
}
});
});
app.get('/about', (req, res) => {
res.render = ('About');
});
//Dynamic routes based on id of project adding locals to pass to pug
app.get('/projects/:id', function(req, res) {
res.render('project', { projects: query.data });
});
app.listen(3000, () => {
console.log("Server started on port 3000");
});
данные. json
{
"projects": [{
"id": 0,
"project_name": "Battleships",
"description": "A game that allows you to guess battleships on a gamebaords and reports hits/misses.",
"technologies": ["HTML", "JavaScript", "CSS"],
"image_url": ["", "", ""]
},
{
"id": 1,
"project_name": "Random Quotes Flashcards",
"description": "Flashcards of random famous qoutes from renowned personalities.",
"technologies": ["HTML", "JavaScript", "CSS"],
"image_url": ["", "", ""]
},
{
"id": 2,
"project_name": "BMI",
"description": "A BMI calculator, computes BMI with weight and height inputs.",
"technologies": ["HTML", "JavaScript", "CSS", "Node.js", "pug"],
"image_url": ["", "", ""]
}
]
}