Page 109 - Node.js开发指南
P. 109
102 第 5 章 使用 Node.js 进行 Web 开发
视图助手的本质其实就是给所有视图注册了全局变量,因此无需每次在调用模板引擎时
传递数据对象。当我们在后面使用 session 时会发现它是非常有用的。
5.5 建立微博网站
在前面的几节中,我们已经对 Express 进行了基本的介绍,现在让我们动手开始创建一
个微博网站吧。
5.5.1 功能分析
开发中的一个大忌就是没有想清楚要做什么就开始动手,因此我们准备在动手实践之前
先规划一下网站的功能,即使是出于学习目的也不例外。首先,微博应该以用户为中心,因
此需要有用户的注册和登录功能。微博网站最核心的功能是信息的发表,这个功能涉及许多
方面,包括数据库访问、前端显示等。一个完整的微博系统应该支持信息的评论、转发、圈
点用户等功能,但出于演示目的,我们不能一一实现所有功能,只是实现一个微博社交网站
的雏形。
5.5.2 路由规划
在完成功能设计以后,下一个要做的事情就是路由规划了。路由规划,或者说控制器规
划是整个网站的骨架部分,因为它处于整个架构的枢纽位置,相当于各个接口之间的粘合剂,
所以应该优先考虑。
根据功能设计,我们把路由按照以下方案规划。
/:首页
/u/[user]:用户的主页
/post:发表信息
/reg:用户注册
/login:用户登录
/logout:用户登出
以上页面还可以根据用户状态细分。发表信息以及用户登出页面必须是已登录用户才能
操作的功能,而用户注册和用户登入所面向的对象必须是未登入的用户。首页和用户主页则
针对已登入和未登入的用户显示不同的内容。
打开 app.js,把 Routes 部分修改为:
app.get('/', routes.index);
app.get('/u/:user', routes.user);
app.post('/post', routes.post);