Node.js 正确的nodejs和x2B模块化结构;API快速应用程序

Node.js 正确的nodejs和x2B模块化结构;API快速应用程序,node.js,api,express,routes,express-4,Node.js,Api,Express,Routes,Express 4,我正在尝试使用Express4为API开发nodejs应用程序。但当我让应用程序更加模块化时,我的路线就不起作用了。谁能解释一下我的错误是什么,API应用程序的正确结构应该是什么 我的app.js文件(一些不必要的代码被剪切): 我的路线/v1/index.js文件: var express = require('express'); var router = express.Router(); var user = require('./user'); module.exports = ro

我正在尝试使用Express4为API开发nodejs应用程序。但当我让应用程序更加模块化时,我的路线就不起作用了。谁能解释一下我的错误是什么,API应用程序的正确结构应该是什么

我的app.js文件(一些不必要的代码被剪切):

我的路线/v1/index.js文件:

var express = require('express');
var router = express.Router();

var user = require('./user');
module.exports = router;
我的路线/v1/user.js文件:

var express = require('express');
var router = express.Router();

router.route('/')
    .get(function(req, res, next) {
        console.log('USERS GET');
    })
    .post(function(req, res, next) {
        console.log('USERS POST');
    })
    .put(function(req, res, next) {
        console.log('USERS PUT');
    })
    .delete(function(req, res, next) {
        console.log('USERS DELETE');
    });

router.use(function(req, res, next) {
    console.log('USERS last Middleware');
});
module.exports = router;
当我尝试请求此类url时:

我只在控制台中看到一条消息:“API版本请求”-因此index.js或user.js中没有触发任何代码

但如果我删除user.js并将请求处理放在index.js中的user.js中的index.js(router.route(“…”)——所有的wark都很好,我看到的消息取决于动词,并且没有“请求API版本”消息


所以我的问题是:为什么会这样?如果我从index.js连接user.js,为什么不包括user.js并且不工作,在这种情况下,我将如何制作模块化应用程序?将所有处理放在index.js中-不太好,因为我需要/user、/news、/comment等处理,我认为这些处理将在单独的文件中处理。

您的routes/v1/index.js文件正在导出一个路由器,但没有添加路由/中间件

在您的routes/v1/index.js文件中,请尝试
module.exports=user

您是否考虑过将routes/v1/user.js中的路由移动到routes/v1/index.js中


(p.s.我是个新手)

与马特所说的相似,但不完全相同

var express = require('express');
var router = express.Router();

var user = require('./user');
module.exports = router;
这没有任何作用,您需要告诉路由器使用“用户”文件

var express = require('express');
var router = express.Router();

router.use('/user', require('./user'));
module.exports = router;
var express = require('express');
var router = express.Router();

router.use('/user', require('./user'));
module.exports = router;