NodeJs error: Cannot GET /admin when using router
NodeJs error: Cannot GET /admin when using router
我正在尝试为管理页面创建路由。
这是我目前得到的:
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
。
任何帮助将不胜感激。
你应该做
app.use('/admin', adminRoutes);
而不是
app.get('/admin', adminRoutes);
在app.js
app.js
将 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
我正在尝试为管理页面创建路由。
这是我目前得到的:
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
。
任何帮助将不胜感激。
你应该做
app.use('/admin', adminRoutes);
而不是
app.get('/admin', adminRoutes);
在app.js
app.js
将 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