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