Итак, здесь у меня есть 2 файла маршрута и 1 контроллер для каждого. Мой первый маршрутизатор с root-правами работает нормально! но мой второй маршрут, который является /teacher, дает мне эту ошибку «Cannot GET /teacher». Я буквально скопировал код корневого маршрута и изменил имена переменных, но он не работает. следующие мои файлы:

server.js

const express = require('express');
const dotenv = require('dotenv');
const root_rt = require('./routes/root-rt');
const teacher_rt = require('./routes/teacherlogin-rt')

dotenv.config();
const uri = process.env.DB_URI;
const port = process.env.PORT;

const app = express();
app.use(express.json());

app.get('/', root_rt);
app.get('/teacher', teacher_rt);

app.listen(port, () =>{
    console.log(`server started on http://localhost:${port}`);
});

teacherlogin-rt.js

const express = require('express');
const router = express.Router();
const teacherController = require('../controllers/teacher-cnt');

router.route('/')
    .get(teacherController.login);
    
module.exports = router;

учитель-cnt

module.exports.login = function (req, res) {
    res.send('this is teacher login page');
};

Заранее спасибо.

0
Omkar Kamble 1 Окт 2022 в 21:20

2 ответа

При использовании маршрутизаторов для их монтирования следует использовать не app.METHOD(), а app.use():

app.use('/', root_rt);
app.use('/teacher', teacher_rt);
0
robertklep 1 Окт 2022 в 21:25
Большое спасибо !!!!
 – 
Omkar K
1 Окт 2022 в 21:31

Внесите приведенные ниже изменения в свой TeacherLogin-rt.js, он начнет работать.

teacherlogin-rt.js

const express = require('express');
const router = express.Router();
const teacherController = require('../controllers/teacher-cnt');

router.get('/', teacherController.login);
    
module.exports = router;

server.js

app.use('/', root_rt);
app.use('/teacher', teacher_rt);
0
Umar Farooque Khan 1 Окт 2022 в 21:33