Node.js Express 4路线

时间:2015-09-14 16:34:59

标签: node.js express

由于我是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文件中。这样做有什么特别的目的吗?

任何帮助都将受到高度赞赏。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我们都有特定的方式来做事。我说这是其中一种情况。我能想到的这些类型的特殊目的是某些实现更适合某些场景。

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

中的路由器

如果我想访问 app.js 中的路由器,我会使用上述实现之一。

//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);
};

我希望你明白我的观点。