NodeJs错误:使用路由器时无法获取/ admin

时间:2019-09-19 17:42:43

标签: node.js express 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。 任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您应该

app.use('/admin', adminRoutes);

代替

app.get('/admin', adminRoutes);

在app.js中

答案 1 :(得分:1)

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