如何修复Express应用程序中的呈现页面错误

问题描述

我的应用程序是一个简单的博客显示博客标题,条目,日期和未完成的编辑/删除页面的架构。编辑/删除将针对所选的帖子,它会将您带到... / blogList / blogEdit / _id页面。当我单击博客文章上的“编辑/删除”按钮时,它会显示404错误

app.js

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var morgan = require('morgan');
var debug = require('debug')('app');
require('./app_server/models/db');

const todoRouter = require('./app_server/routes/index');

var app = express();

// view engine setup
app.set('views',path.join(__dirname,'app_server','views'));
app.set('view engine','jade');

...

app.get('/',todoRouter);
app.get('/blogAdd',todoRouter);
app.get('/blogList',todoRouter);

index.js

var express = require('express');
var router = express.Router();
var ctrlHome = require('../controllers/home');
var ctrlBlogA = require('../controllers/blog');
var ctrlBlogL = require('../controllers/blogL');

router.get('/',ctrlHome.bHome);
router.get('/blogAdd',ctrlBlogA.bAdd);
router.get('/blogList',ctrlBlogL.bList);
router.get('/blogList/blogEdit/:id',ctrlBlogL.eList);
router.get('/blogList/blogDelete/:id',ctrlBlogL.dList);

module.exports = router;

controller / blogL.js

module.exports.bList = function(req,res){
        res.render('blogList',{
                title: 'Blog List',pageHeader: {
                        title: 'Blog List',},blog: [{
                                blogTitle: 'We did one!',blogEntry: 'I hope this gets put into my blog',blogDate: '9/22/2020'
                },{
                                blogTitle: 'We did two!',blogEntry: 'I did it',blogDate: '9/24/2020'
                },{
                                blogTitle: 'Third entry',blogEntry: 'complete',blogDate: '9/24/2020'
                }]
        });
};

module.exports.eList = function(req,res){
                res.render('blogEdit',{title: 'Blog Edit'});
};
module.exports.dList = function(req,res){
                res.render('blogDelete',{ title: 'Blog Delete' });
};

blogList.jade-应该呈现所有架构的部分

      p
      each blogs in blog
       .col-xs-12.list-group-item
        h4
         p
          h4= blogs.blogTitle
         p
          h4= blogs.blogEntry
         p
          h4= blogs.blogDate
          //error is here I assume
          a.btn.btn-default.pull-right(href="/blogEdit") Edit
          a.btn.btn-default.pull-right(href="/blogDelete") Delete

解决方法

在app.js中,需要有一个带有/blogList/.../_id的app.get('...'),以允许该应用使用页面。