大家好,我是 Node js 新手,我正在使用 Node JS 创建一个简单的电子商务网站,并使用 PUG 构建一个模板引擎
到目前为止,我正在遵循 MVC,因为我的商店路线翻转工作正常,但对于管理路线,它总是显示 404 未找到
这是我的app.js
const path=require("path")
const express = require("express");
const app=express();
const bodyParser=require("body-parser");
const adminRoutes=require("./routes/admin")
const shopRoutes=require("./routes/shop")
const error404Controlle=require("./controllers/404")
app.set("view engine","pug")
app.set("view ","views")
app.use(bodyParser.urlencoded({ extended: false }))
app.use("/admin",adminRoutes)
app.use(shopRoutes)
app.use(error404Controlle.error404)
app.listen(3000)
这是我的管理路线:
const express = require("express")
const router=express.Router();
const adminController=require("../controllers/admin")
//admin/add-product=>GET
router.get('/add-product',adminController.getAddedProducts);
//admin/add-product=>POST
router.post('/add-product',adminController.getPostAddProduct)
router.post('/edit-product',)
router.post('/admin-products-list',)
router.post('/adminHome',adminController.adminHomePage)
module.exports=router;
这是管理控制器:
const Product=require("../model/product")
exports.getAddedProducts=(req,res,next)=>{
res.render("admin/add-product", )
}
exports.getPostAddProduct=(req,res,next)=>{
const product=new Product(req.body.Title,req.body.Price,req.body.Description)
product.save();
res.redirect('/');
}
exports.adminHomePage=(req,res,next)=>{
res.render('admin/admin-page',);
}
这是我的 PUG 文件页面,我在其中创建了一个页脚,其中带有打开管理主页的按钮
doctype html
html(lang="en")
head
meta(charset="UTF-8")
meta(http-equiv="X-UA-Compatible", content="IE=edge")
meta(name="viewport", content="width=device-width, initial-scale=1.0")
title Products
link(rel="stylesheet", href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css")
link(rel="stylesheet", href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css")
style.
body {
display: flex;
flex-direction: column;
min-height: 100vh;
}
main {
flex-grow: 1;
}
body
header
nav.navbar.navbar-expand-lg.navbar-light.bg-light
ul.navbar-nav
li.nav-item
a.nav-link(href="/") Shop
li.nav-item
a.nav-link(href="/products") Products
li.nav-item
a.nav-link(href="cart") Cart
main.container.mt-4
h1.display-4 My Products
if prods.length === 0
p No products to show
else
.row
each product in prods
.col-md-4
.card.mb-4
img.card-img-top(src=product.imageUrl, alt=product.title)
.card-body
h5.card-title #{product.title}
p.card-text #{product.description}
p.card-text
span Price: $#{product.price}
a.btn.btn-primary.float-right(href="#") Add to Cart
i.fas.fa-cart-plus
footer.text-center.text-white(style="background-color: #0a4275;")
section
div.container.p-4.pb-0
section
p.d-flex.justify-content-center.align-items-center
span.me-3 Admin Access
a.btn.btn-outline-light.btn-rounded(type="button", href="/adminHome") Authorize
div.text-center.p-3(style="background-color: rgba(0, 0, 0, 0.2);")
| © 2023 Copyright:
a.text-white(href="https://www.google.com/") Horizam.com
script(src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js")
但是当我点击路线时,路线就不会打开。 谁能告诉我在开发 Node js 应用程序时我做错了什么以及如何克服或解决问题
我可以在你的控制器中看到你没有正确定义路由器的渲染,你可以再检查一次并尝试吗?