【问题标题】:Node.js Express 4 routesNode.js Express 4 条路线
【发布时间】:2015-12-10 17:48:09
【问题描述】:

由于我是 Express 4 的新手,我会尽量让我的问题尽可能简单。 我一直在参考一些在线教程,并提出了一个困惑。

通常,app.js 的 Express 4 设置具有以下类型的路由代码

.
.
.
var routes = require('./routes/index');
var users = require('./routes/users');
.
.
.

app.use('/', routes);
app.use('/users', users);

我使用 Get 或 Post 与任何参数,以上工作完美。 但是,在另一个教程中,我看到它的做法有所不同 - 就像这样

.
.
.
var routes = require('./routes’);
.
.
.
app.get('/', routes.index);
app.get('/login', routes.user.login);
.
.
.

我很困惑,因为通常我在 /routes/index.js 文件中使用 app.get 方法,或者对于与用户相关的任何内容,我在 /routes/users.js 中使用 app.get 方法

为什么我们直接在 app.js 文件中使用 app.get,而不是在 /routes/user.js 或 /routes/index.js 文件中使用。这样做有什么特殊目的吗?

任何帮助将不胜感激。 提前谢谢。

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    我们都有自己喜欢做事的特定方式。我说这是其中一种情况。对于这些类型,我能想到的唯一特殊用途是某些实现更适合某些场景。

    我在下面给出的示例是另一种实现方式。我将所有与路由相关的代码完全移动到另一个文件,因为我不需要访问 app.js

    中的 router

    如果我想在 app.js 中访问 router,我会使用上述实现之一。

    //We can pass both app, express or just app based on our requirements.
    
    //app.js
    require('./app/routes.js')(app, express);
    
    //app/routes.js
    module.exports  = function(app, express) {
        var router = express.Router();
    
          router.route('/users')
           .get(function(req,res){
               //......
           });
    
        app.use('/', router);
    };
    

    希望你明白我的意思。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      • 2015-04-18
      • 2014-01-10
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      相关资源
      最近更新 更多