express4.x学习记录——关于路由控制器的写法

来源:互联网 发布:android 监听有线网络 编辑:程序博客网 时间:2024/05/16 04:11


网上大部分看到的express中app.js里面路由控制器有app.get()和app.post()两种

最简单的路由控制器写法就是直接在app.js中直接写出路由设置的回调函数。例如:

app.get('/', function(req, res){    res.render('index');});
这种就是直接在回调函数里面写页面渲染的代码。但是随着代码越来越多,会导致app.js的内容太多而且冗杂,难以维护,这样就违背了代码模块化的思想。所以目前最实用的就是把app.js作为一个简单的路由分配器(路由控制器只负责分配路由,然后到对应的文件中找到对应的路由方法,实现路由功能)。

在使用express 4.x框架时,我发现它的做法和我的做法有点不一样,但是效果都是一样的。具体的就是以下两种方法:

一、使用app.get()方法(我自己的做法)

1、在app.js中声明一个本地文件模块

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

加入routes文件夹下面的index.js文件,然后把我们的路由方法写到该文件中,实现分离。

2、路由控制器的写法:

app.get('/', routes.index);

这里就把app.get的回调函数通过方法的调用分离到了对应的方法中,而不是以下全写在app.js中

3、然后就是routes/index.js文件中的代码:

router.index = function(req, res){    res.render('index', {title:'Express'});}
这里使用js面向对象的写法就行了。需要注意的是这里方法的前面是用得router。而我看有些express 3.x的写法是写的exports,但是我这里用exports却又不行,具体的我也没有刻意去了解,对于我这样的实用主义者来说,能用就行,何必深究,毕竟还没到研究的地步。

以上就是我的路由控制器的写法。

然后下面给大家看看express 4.x原创的写法。

二、express 4.x路由控制器的写法

1、在app.js中声明一个本地文件模块(这一点和我的是一样的)

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

加入routes文件夹下面的index.js文件,然后把我们的路由方法写到该文件中,实现分离。

2、路由控制器的写法(与我不同了)

app.use('/', routes);


通过中间件来设置路由。

3、routes文件夹下面的index.js中的写法

router.get('/', function(req, res, next) {  res.render('index', { title: 'Express' });});
他是在这里写的一个路由控制器,而且也是可行的。


至于哪种方法更好我暂时还不知道,只是把这两种发放给大家介绍介绍。

如果哪里写的有误或者不好希望大家支出,毕竟我也不是什么大牛,还在不断进步中。



0 0
原创粉丝点击