一个计算机技术爱好者与学习者

0%

GoF (Gang of Four,四人组,《Design Patterns: Elements of Reusable Object-Oriented Software》/《设计模式》一书的作者:Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)并没有把MVC提及为一种设计模式,而是把它当做“一组用于构建用户界面的类集合”。

在他们看来,它其实是其它三个经典的设计模式的演变:观察者模式(Observer)(Pub/Sub),策略模式(Strategy)和组合模式(Composite)。

根据MVC在框架中的实现不同可能还会用到工厂模式(Factory)和装饰器(Decorator)模式。

models表示应用的数据,而views处理屏幕上展现给用户的内容。为此,MVC在核心通讯上基于推送/订阅模型(惊讶的是在很多关于MVC的文章中并没有提及到)。当一个model变化时它对应用其它模块发出更新通知(“publishes”),订阅者(subscriber)——通常是一个Controller,然后更新对应的view。观察者——这种自然的观察关系促进了多个view关联到同一个 model。

对于感兴趣的开发人员想更多的了解解耦性的MVC(根据不同的实现),这种模式的目标之一就是在一个主题和它的观察者之间建立一对多的关系。当这个主题改变的时候,它的观察者也会得到更新。Views和controllers的关系稍微有点不同。Controllers帮助views对不同用户的输 入做不同的响应,是一个非常好的策略模式列子。

摘自文档:http://damoqiongqiu.iteye.com/blog/1949256

hello voidking

查看效果

1、单击webstorm右上角的绿色三角形(或者shift+f10),运行项目。

2、打开浏览器,输入localhost:3000,有没有看到welcome to express ?

修改文字

下面我们把welcome to express修改为hello voidking!
1、打开views文件夹下的index.ejs,诶?这不是html代码吗?发现有个<%= title%>,这是个啥玩意?
这时,我们就要解释一下模板引擎了。专业一点说,模板引擎是一个可以根据模板生成html代码的工具。通俗一点讲,模板引擎就像是一个函数,不同的x值对应不同的y值。
比如y=x+1,当x=1时y=2。这里的x就相当于<%= title%>,y就相当于html页面。懂了?不懂拉倒,自己慢慢想,这不是重点。
2、知道了原理,修改就简单了,不就是给x赋值嘛!打开routes文件夹下的index.js文件,看到这段代码:

1
2
3
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
});

修改如下:

1
2
3
router.get('/', function(req, res) {
res.render('index', { title: 'voidking' });
});

看懂了吧,把“voidking”赋值给了title,仅此而已。

阅读全文 »

1. 开发环境

下载安装node.js。安装完成后,进入命令提示符界面,输入node --version,如果能出现node的版本号,则说明安装成功。

2. 开发工具的选用

java程序开发,我喜欢eclipse;node.js程序开发,我选择的工具是webstorm。至于软件下载破解啥的,都是基本功,在此不赘述。

3. 生成基本目录和文件

1、打开webstorm,file -> new project

2、输入project name,选择location,project type选择node.js express app

3、node.js interpreter和npm excutable的位置默认就好(自动读取),version of express-generator选择最新版4.9.0,template engine选择ejs,css engine选择plain css。

4、ok,this window,如果接下来弹出configure node.js v0.10.31 core modules sources,直接点cancel就好,用不到。

5、好了,项目基础框架搭建好了,看下效果:

20天

这次项目的任务是:开发一个适用于团队的博客。从9月27接手任务,到10月17项目上线,20天左右。加班加点,一路走过,收获颇丰。现在,项目验收完毕,是时候吹吹牛了!

node.js + express + ejs + mongodb + bootstrap

起初,有组员提出使用Java EE,因为我们之前用它开发了复合人才网,比较熟悉。这个提议被我否定了,理由是杀鸡用牛刀。最终,我们决定使用从来都没有接触过的node.js,边学边做,这也符合我们做开发的最终目的——学习。

阅读全文 »