Я создаю веб-сайт, помогающий настроить компьютер. На моей домашней странице у меня будет список категорий продуктов, таких как Процессор, Материнская плата, как на первом изображении. Как вы можете видеть, я выполнил свой код JS, используя узел js, и команда была "nodemon run.js". В адресной строке вы можете увидеть localhost: 3000, что означает, что я дал ему порт 3000, и эта страница загружена на мой домашний маршрут. Изображение для домашнего маршрута или маршрута по умолчанию
Рядом с каждой записью, т.е. Процессор материнской платы вы можете увидеть фиолетовую кнопку. Также текст с надписью «Не указано», который является текстом тега абзаца. Я нажму эту кнопку «выбрать» рядом с процессором, и я перейду к маршруту «/ product», который я определил для продуктов процессора. В / product route мы получаем список всех товаров выбранной нами категории. Второе изображение показывает только эту страницу / маршрут продукта. Изображение для / маршрута продукта
Теперь, нажав кнопку выбора, я выберу этот продукт в списке. Вот где сложная часть. Я хочу выбрать этот продукт, и как только я выберу этот продукт, он должен перенаправить меня на домашний маршрут, где вы увидите localhost: 3000, что означает, что я вернулся на домашний маршрут, и показывает страницу со всеми категориями, т.е. Процессор, материнская плата. Но на этот раз, так как я выбрал продукт из / product route, название продукта должно отображаться вместо текста «Not Specified». Помните, что это был текст в элементе списка?
Теперь, что я сделал, я отобразил эти данные в маршрут / product, а домашняя страница была преобразована в этот маршрут / product. Потому что для перехода на домашний маршрут мне нужно использовать res.redirect, и это приведет меня к домашнему маршруту. Но я не смогу получить данные, полученные по маршруту "/ product", и отобразить их в тексте. На третьем изображении отмечена область, в которой показан маршрут «/ product», а домашняя страница загружена в маршрут «/ product». Выбранные мной данные помещаются в текст «Не указано», но они не перенаправляются на домашний маршрут, а только на домашнюю страницу, отображаемую в маршрут «/ product». Это не то, что я хочу. Может отображать имя там, но это все еще / маршрут продукта, который я хочу быть домашним маршрутом
Я хочу перенаправить на свой домашний маршрут с даннымиЯ выбрал маршрут «/ product», чтобы преобразовать эти данные в текст «Не указано», который у меня есть на первом изображении.
Ниже приведен весь код, который я написал в качестве примера для выполнения этой работы. Это все еще не завершено. Мне просто нужна помощь по частям app.get и app.post, в которых я рендерим эти данные в маршрут.
const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const app = express();
app.set('view engine', 'ejs');
app.use(bodyParser.urlencoded({extended: true}));
app.use(express.static("public"));
mongoose.connect("mongodb://localhost:27017/productDB", {useNewUrlParser: true});
//Database Part Start
const listProcessor = new mongoose.Schema({
name: String,
core: Number,
thread: Number
});
const ListProcessor = mongoose.model("ListProcessor", listProcessor);
const item1 = new ListProcessor({
name: "AMD Ryzen 5 3600",
core: 6,
thread: 12,
price: 17100
});
const processorArray = [item1];
//Database Part end
//server part and get post part start
app.get("/", function(req, res){
res.render("buildown", {name: "Not Specified", price: "Not Specified"});
});
app.post("/", function(req, res){
const signal = req.body.choose;
if(signal === "cpu")
{
ListProcessor.find({}, function(err, items){
if(items.length === 0)
{
ListProcessor.insertMany(processorArray);
res.redirect("/product");
}
else{
res.redirect("/product");
}
});
}
});
app.get("/product", function(req, res){
res.render("list", {listTitle: "Processor", listOfProduct: processorArray}); //Using EJS passing data from processorArray
});
app.post("/product", function(req, res){
const nameItem = req.body.select;
ListProcessor.find({nameItem}, function(err, items){
console.log(items);
res.render("buildown", {name: nameItem, price: items.price});
});
});
app.listen(3000, function(){
console.log("Server Up and Running");
});
//Get Post part end
На главной странице у меня есть тег абзаца, вставленный в данные таблицы, использующие EJS, чтобыимя, которое я получаю из "/ product", может быть отображено в этом тексте. Первоначально это было бы «Не указано».
Для страницы продукта я также использовал EJS, чтобы название продукта, цена, данные можно было поместить из базы данных.
страница на «/ product»На маршруте отображается список товаров в выбранной нами категории. Пожалуйста, помогите мне, чтобы я мог выбрать элемент из этого списка, используя кнопку «выбрать», и я могу взять эти данные, перенаправить на домашний маршрут, где находится домашняя страница, и отобразить данные, которые я получил в этот тег абзаца, чтобы вместо «Не указано»он показывает название выбранного продукта.
Пожалуйста, сообщите мне, если я пропустил какие-либо детали, и вам нужно более подробное объяснение того, что я собираюсь сделать здесь. Заранее спасибо. Кроме того, я не совсем уверен, что искать в Google по поводу этой проблемы, поэтому скажите мне ключевые слова, которые мне нужно искать в Google, чтобы я мог изучить его самостоятельно.