Javascript 重定向到主路由时,如何渲染从当前路由选择的数据?
我正在建立一个个人电脑安装帮助网站。在我的主页上,我会有一个产品类别的列表,例如处理器、主板之类的第一张图片。正如您所看到的,我已经使用NodeJS运行了我的JS代码,命令是“nodemon run.JS”。在地址栏中,你可以看到localhost:3000,这意味着我给了它端口3000,这个页面被加载到我的主路由上 在每个条目(即处理器、主板)旁边,您可以看到一个紫色按钮。另一个文本表示“未指定”,这是一个段落标记文本。我将单击处理器旁边的“选择”按钮,它将带我到我为处理器产品定义的“/product”路线。在/product route中,我们获得所选类别的所有产品的列表。第二幅图只显示了/product route页面。 现在,单击选择按钮,我将在列表中选择该产品。这就是棘手的部分。我想选择该产品,一旦我选择了该产品,它就会将我重定向到主路由,在那里你会看到localhost:3000,这意味着我回到主路由,它会显示包含所有类别的页面,即处理器、主板。但这一次,由于我从/product-route中选择了一个产品,因此产品的名称应该显示在“Not-Specified”文本的位置。还记得这是列表元素中的文本吗 现在我所做的是,我将数据呈现到/product路径,并且主页也呈现到这个/product路径中。因为我必须使用res.redirect,才能到达主路线。但我无法获取从“/product”路径获取的数据并将其呈现在文本中。第三幅图像有一个区域标记,显示“/product”路线,主页加载到“/product”路线中。我选择的数据放在“未指定”文本上,但这不会重定向到主路径,而只是呈现到“/product”路径中的主页。这不是我想要的 我想重定向到我的主路径,使用我从“/product”路径中选择的数据,将此数据呈现到第一幅图像上的“未指定”文本中 下面是我作为示例编写的整个代码。它还没有完成。我只需要app.get和app.post部分的帮助,在这些部分中我将这些数据渲染到route中Javascript 重定向到主路由时,如何渲染从当前路由选择的数据?,javascript,node.js,mongodb,express,ejs,Javascript,Node.js,Mongodb,Express,Ejs,我正在建立一个个人电脑安装帮助网站。在我的主页上,我会有一个产品类别的列表,例如处理器、主板之类的第一张图片。正如您所看到的,我已经使用NodeJS运行了我的JS代码,命令是“nodemon run.JS”。在地址栏中,你可以看到localhost:3000,这意味着我给了它端口3000,这个页面被加载到我的主路由上 在每个条目(即处理器、主板)旁边,您可以看到一个紫色按钮。另一个文本表示“未指定”,这是一个段落标记文本。我将单击处理器旁边的“选择”按钮,它将带我到我为处理器产品定义的“/pro
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”路线上的页面显示了我们所选类别下的产品列表。请帮助我,以便我可以使用“选择”按钮从该列表中选择一个元素,然后我可以获取该数据,重定向到主页所在的主路线,并将我获取的数据呈现到该段落标记中,从而显示所选产品的名称,而不是“未指定”
请通知我,如果我错过了任何细节,你需要一个更详细的解释我的目标在这里做什么。先谢谢你。此外,我也不太确定在谷歌上搜索什么来解决这个问题,所以请告诉我需要在谷歌上搜索哪些关键字,这样我就可以自己学习了。将选定的引用存储在cookie中不是更容易吗?这样,如果用户选择了CPU、主板、RAM、GPU,并意外地在浏览器中点击“Back”,他们就不必从头开始重新启动。然后,您可以在请求
/
页面时读取该cookie,并填写组件。允许用户重置此选择(删除cookie),如果下了订单,请自动重置。我真的不知道如何使用cookie。我做这个是为了一个大学项目,我必须尽快提交。我只想知道如何从/product获取数据并在/route或home route上使用它