【问题标题】:Referencing an Express app from my router module从我的路由器模块引用 Express 应用程序
【发布时间】:2012-09-03 17:43:36
【问题描述】:

我从这里的各种帖子中了解到,构建 Express 应用程序的一个好方法是创建一个 routes.js 模块,其内容如下:

exports.homepage = function (req, res) {
    // do something
}

然后,从我的 app.js:

var app = module.exports = express.createServer();
app.get('/', routes.homepage);

这很有效,直到我想改变我的“做某事”来做另一个这样的请求:

exports.homepage = function (req, res) {
    app.get('/sign-in', myCallbackFunc);
}

我的 routes.js 对应用一无所知。我如何传入/引用“应用程序”。还是我构建的方式不正确?

谢谢!

【问题讨论】:

  • 好吧,正确性取决于您的意图。那么,为什么只需要请求/之后才添加路由/sign-in?或者,这不是你想要的吗?
  • @JonathanLonowski 用于将尚未登录的用户转发到登录页面。
  • 啊。试试res.redirect('/sign-in')
  • @JonathanLonowski 我不能用它传递回调,但我可以吗?

标签: node.js routes express


【解决方案1】:

不确定您的项目的结构。但这就是我创建 routes.js 文件的方式:

var routes = function(app) {
    app.get('/', function(req, res) {
       // do something
    });

    app.get('/sign-in', function(req, res) {
       // do something
    });
};

module.exports = routes;

从您的 app.js 中,只需像这样要求您的路由文件:

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

【讨论】:

  • 正是我需要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2022-12-02
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
相关资源
最近更新 更多