简体   繁体   English

Express js:单独的控制器和路由器文件在路由上返回404错误

[英]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. 我想将我的所有路由从app.js文件分成一个seprat route文件,该文件将从控制器目录加载控制器。

Here is my folder structure 这是我的文件夹结构

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

Here is my testController.js 这是我的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. route目录下的route.js

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. 当我访问我的路由localhost:3000/hello我有404错误。

I just tried the solutions from this question separate file for routes in express 我刚尝试了这个问题的解决方案单独的文件中的快递路线

app.js 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');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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