用外部文件表示4路由器

时间:2014-03-26 21:21:06

标签: node.js express routing

我有以下文件

lib/pub
lib/pub/index.js
app.js

在App.js上

我有:

// app.js
var express = require("express")
, app = express()
, router = express.Router()
;
... 
router.use('/pub',require('./pub'));

然后在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")
  })
}

我执行localhost/pub请求时遇到的问题,我从未得到got the get request,无论我尝试更改代码,尝试将pub添加到路径中。

router.get('/',...
router.get('/pub',...
router.get('./pub,...
router.get('./',...
router.get('pub',...
etc...

我尝试过的任何一种或任何其他愚蠢的方式......我永远无法得到日志说是的我得到了请求......

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

1 个答案:

答案 0 :(得分:11)

(编辑以反映评论)

如果要将路线移至外部文件,请使用以下模式:

app.js

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

require('./routes')(app);

routes.js

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