简体   繁体   中英

Express js :separate controller and router file returns 404 error on route

I would like seprate all of my routes from the app.js file into a seprat route file which will loads the controllers from the controller directory.

Here is my folder structure

<project folder>
   controllers
         testController.js
   routes
        route.js
app.js

Here is my testController.js

module.exports = {
    getMovie : function(req, res){
        //do something
        res.send('respond with test resource');
    },
    postMovie : function(req, res){
        //do something
    }
}

route.js under route directory.

var express = require('express');
//load the contrller
var test = require('../controllers/testController.js');
var router = express.Router();

router.route('/hello').get(test.getMovie);

module.exports = router;

when i access my route localhost:3000/hello i got 404 error.

I just tried the solutions from this question separate file for routes in express

app.js

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes');

var app = express();
app.use('api',routes);

app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

Please Update

var routes = require('./route')

to

var routes = require('./routes/route');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM