javascript - Node.js + Express 给我错误 - 无法获取 /
问题描述
我创建了一个简单的应用程序。在我将应用程序代码拆分为 MVC 模板之前,一切正常。下面我介绍我的应用程序的代码。转到 localhost:3000/add-service 后,您将看到无法获取 /add-service 消息。
不幸的是我无法解决的问题在哪里?
应用程序.js
const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');
const expressLayouts = require('express-ejs-layouts');
const adminRoutes = require('./Routes/admin');
const shopRouters = require('./Routes/shop');
const app = express();
app.use(expressLayouts);
app.set('view engine', 'ejs');
app.set('views', './views');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/add-service', adminRoutes);
app.use(shopRouters);
app.use('/', (req, res, next) => {
res.status(404).render('./pages/404', {
title: '404 Page Not Found',
path: '',
});
});
app.listen(3000);
admin.js - 这是我的路由器文件
const express = require('express');
const router = express.Router();
const bikesController = require('../controllers/bikes');
router.get('/add-service', bikesController.getAddBike);
module.exports = router;
bikes.js - 这是我的控制器
const bikes = [];
exports.getAddBike = (req, resno) => {
res.render('../views/pages/add-service', {
path: 'pages/add-service',
title: 'Add in Service',
});
};
exports.postAddBike = (req, res) => {
bikes.push({ title: req.body.bikeModel });
res.redirect('/');
};
exports.getBikes = (req, res) => {
res.render('./pages/shop', {
model: bikes,
docTitle: 'List of Bikes',
path: '/',
title: 'Main Page',
});
};
应用树
解决方案
app.use('/add-service', adminRoutes);
您已安装adminRoutes
在/add-service
router.get('/add-service', bikesController.getAddBike);
服务提供的唯一端点是/add-service
将它们结合起来,您就有了 URL: /add-service/add-service
,这不是您想要的。
路由器的要点是它不需要知道它所在的上面的 URL。
路由器应该只处理它自己的 URL 层次结构部分:
router.get('/', bikesController.getAddBike);
推荐阅读
- python-3.x - 比较python中两种不同类型的列表并获取索引
- amazon-s3 - AWS S3:有没有办法计算上传文件的行数?
- mysql - JOINed 另一个表时,JOINed table 中的列的 SUM 不正确
- python - 如何解绑外键相关关系?
- java - java.lang.NoClassDefFoundError: net/sf/ehcache/concurrent/ReadWriteLockSync
- javascript - 我可以在 Javascript 中选择一个 HTML 元素最近的祖先吗(沿着 DOM 走)?
- java - 对继承Java中的方法和字段感到困惑
- python - tkinter 的按钮文本在莫哈韦沙漠中不起作用
- scala - 演员中的scala list.par
- python - 矩阵链应用程序中括号的可能组合