由于我是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文件中。这样做有什么特别的目的吗?
任何帮助都将受到高度赞赏。 提前谢谢。
答案 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);
};
我希望你明白我的观点。