node.js - 带有外部文件的 express 4 路由器

标签 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...

这些或任何其他愚蠢的方式我都没有尝试工作......我永远无法让日志说是我收到了请求......

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

最佳答案

(编辑以反射(reflect)评论)

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

应用程序.js

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

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

路由.js

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

关于node.js - 带有外部文件的 express 4 路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22673332/

相关文章:

.net - 如何从 App_Code 中的类使用 Control.GetRouteUrl

javascript - socket.io 的好的初学者教程?

node.js - 在 Node.js 中创建参数化 "components"的最佳方法是什么?

javascript - Express.js : Undefined request body (base64)

node.js - Node 预呈现器处理第一页加载 - 后续加载时出现 500 错误

javascript - Express.js 路由器需要直接还是在变量中?

php - Symfony2 - 如何从另一个 Controller 渲染 View

angularjs - Angular 1.5 路由示例

Node.js + Prometheus - 目标关闭连接被拒绝

node.js - Node 服务器运行在端口80但无法通过域调用它