express开发起步:创建一个有一个“action”的“Controller”。

由于个人熟悉php(Thinkphp),所以,在学习nodejs时,不自觉的拿学到的内容和TP作比,对于个人,感觉确实学习起来很快。但或许对于不了解php和thinkphp的人来说,倒有点儿:“解释一个问题,反而引入了两个问题的感觉了”。总之,还是希望能够做点儿分享吧。

本文主要讨论,在使用express搭建好一个nodejs的MVC框架以后,我们可能第一步要做是事情是什么?至于,如何使用express搭建一个基于nodejs的MVC框架,点击这里

问题:搭建完express的框架之后,如何创建一个有一个“action”的“Controller”?

1:环境说明:

node version : v0.12.0 命令:node –version

express version : v4.12.2 命令:npm info express version

2:监听目录(理解比较浅,初学,大神勿喷)

我们先看app.js的内容:上面有图中所示,框架已经有两个能访问的“controller”了。第一个用 ‘./route/index’文件监听了 ‘/’ 目录,第二个用 ‘./route/users’文件监听了 ‘/users’ 目录。那么假设我们要监听例如: ‘/albums’ 这个目录。如上图所示,我们也照瓢画葫芦地,在‘./route/’ 目录下创建了一个名为: albums.js 的文件。

2:下面我们来看看express是如何监听这个目录,当有这样的访问时,做出处理的:

从上图可以看出,对于 ‘/’ 目录的监听,是去“渲染”一个文件,我们看到的是一个“html”页面。而对于 ‘/user’ 的监听,只是返回了一句话。相比之下,很明显前者做的工作更多。

那么,我们依旧,一样作画。

我们暂且不考虑现在的访问效果。来看看这个“渲染”过程做了什么工作。

3:页面渲染

对于这个的具体实现我也正在学习,原理我想应该就是模板替换吧。直接上代码:

上面是 views 目录下的,index.jade 和 layout.jade。了解 thinkphp( 或者学习过structs???) 模板继承的朋友肯定很高兴看到这些。哇,终于看到懂的东西了!

是的,上面就是个模板替换,,你可以直接理解为,字符串的替换。str_replace! 就是拿一个js的对象,去替换 ***.jade 中相应的地方。至于index,jade和layout.jade的关系,不再多说,百度应该能搜索到。

4:如此,我们访问 ***Controller 下的 *** 方法,是可以做到了,那么,要是需要传递参数呢?看图:

其实,红线区域就是在接受参数啦!解释下一个。上述的路径其实就是 “/albums/get/user_id/1/albums_id/1” 啦。熟悉thinkphp的朋友看到这里,应该更高兴了。这不就是那个,啥啥啥url模式么?是的,好像叫“path_info”模式?本人也忘记啦,哈哈。。。。

5:拿到上面的那个参数:依旧,直接上图:

“渲染”时说过,渲染就是字符串替换,看到这里,是不是更明白了?对,就是那一个对象去替换 ***.jade文件中要替换的内容。

只不过,上面的代码,是拿参数去替换罢了,为了看到参数而已。

好了,直接上结果。

额,这就是我在学习express时,搭建好框架想到的第一件事儿:这玩意儿怎么用。 大概就是这样子,至于,你那参数,访问数据库,得到结果,再渲染,就是个人业务逻辑啦。。。哈哈

可你仍然感谢天地和人世所带来的这些变化和发生。

express开发起步:创建一个有一个“action”的“Controller”。

相关文章:

你感兴趣的文章:

标签云: