我正在尝试为管理页面建立路由。
这是我到目前为止所得到的:
app.js
app.engine('.hbs', expressHsb({defaultLayout: 'default', extname: '.hbs'}));
app.set('view engine', '.hbs');
app.use(express.json());
app.use(express.urlencoded({extended: true}));
app.use(express.static(path.join(__dirname, '/public')));
const adminRoutes = require('./routes/adminRoutes');
app.get('/admin', adminRoutes);
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
adminRoutes.js
const express = require('express');
const router = express.Router();
const adminController = require('../controllers/adminController');
router.all('/*', (req, res, next) => {
req.app.locals.layout = 'admin';
next();
});
router.route('/')
.get(adminController.index);
module.exports = router;
adminController.js
module.exports = {
index: (req, res) => {
res.render('admin/index', {layout: false});
}
};
我不确定我在这里想念什么。我在app.js
中定义了路线
但我仍然得到Cannot GET /admin
。
任何帮助将不胜感激。
答案 0 :(得分:2)
您应该
app.use('/admin', adminRoutes);
代替
app.get('/admin', adminRoutes);
在app.js中
答案 1 :(得分:1)
将GET
更改为use
,然后重新启动服务器。
const adminRoutes = require('./routes/adminRoutes');
// change get to use it
app.use('/admin', adminRoutes);
要了解更多路线: https://github.com/sagormax/node-admin/blob/master/routes/index.js
要了解更多app.js:https://github.com/sagormax/node-admin/blob/master/app.js