页面打不开node js

问题描述 投票:0回答:1

大家好,我是 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 应用程序时我做错了什么以及如何克服或解决问题

node.js express pug
1个回答
0
投票

我可以在你的控制器中看到你没有正确定义路由器的渲染,你可以再检查一次并尝试吗?

© www.soinside.com 2019 - 2024. All rights reserved.