问题描述
我的应用程序是一个简单的博客,显示博客标题,条目,日期和未完成的编辑/删除页面的架构。编辑/删除将针对所选的帖子,它会将您带到... / 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('...'),以允许该应用使用页面。