Home > Blockchain >  Node.js Error: Cannot GET/ from running on the web browser
Node.js Error: Cannot GET/ from running on the web browser

Time:10-02

So here I have 2 route files and 1 controllers for each. My first router that is root, is working fine ! but my second route that is /teacher is giving me this error "Cannot GET /teacher" I literally copy pasted the root route code and changed the variable names still its not working. following are my files:

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;

teacher-cnt

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

Thank you in advance.

CodePudding user response:

When using routers, you shouldn't use app.METHOD() to mount them, but app.use():

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

CodePudding user response:

Make the below change in your teacherlogin-rt.js, it will start working

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);
  • Related