用外部文件表示4路由器

Val*_*Val 4 routing node.js express

我有以下文件

lib/pub
lib/pub/index.js
app.js
Run Code Online (Sandbox Code Playgroud)

在App.js上

我有:

// app.js
var express = require("express")
, app = express()
, router = express.Router()
;
... 
router.use('/pub',require('./pub'));
Run Code Online (Sandbox Code Playgroud)

然后在index.js上

// pub/index.js
var express  = require('express')
, router = express.Router()
;
console.log("file loaded successfully")
module.exports = function(){
  router.get('/',function(req,res){
     console.log("got the get request")
  })
}
Run Code Online (Sandbox Code Playgroud)

当我localhost/pub提出请求时,我遇到的got the get request问题是,无论我尝试更改代码,尝试添加pub到路径中,我都无法得到.

router.get('/',...
router.get('/pub',...
router.get('./pub,...
router.get('./',...
router.get('pub',...
etc...
Run Code Online (Sandbox Code Playgroud)

没有那些或任何其他愚蠢的方式我尝试工作...我永远不会得到日志说是的我得到了请求...

我究竟做错了什么 !(表达变化如此频繁和根本,任何网络教程变得多余或任何以前的帮助其他人得到)

Som*_*ens 11

(编辑以反映评论)

如果要将路由移动到外部文件,请使用以下模式:

app.js

var express = require('express');
var app = express();

require('./routes')(app);
Run Code Online (Sandbox Code Playgroud)

routes.js

module.exports = function(app) {
  app.get('/pub', function(req, res) {
    console.log('got the get!');
    res.end();
  });
};
Run Code Online (Sandbox Code Playgroud)