Page 130 - Node.js开发指南
P. 130

5.7  发表微博    123


                                                                                                      1
                     app.get('/logout', checkLogin);
                     app.get('/logout', function(req, res) {
                       req.session.user = null;
                       req.flash('success', '登出成功');
                       res.redirect('/');
                     });                                                                              2
                   };

                   function checkLogin(req, res, next) {
                     if (!req.session.user) {
                                                                                                      3
                       req.flash('error', '未登入');
                       return res.redirect('/login');
                     }
                     next();
                   }
                                                                                                      4

                   function checkNotLogin(req, res, next) {
                     if (req.session.user) {
                       req.flash('error', '已登入');
                       return res.redirect('/');
                     }                                                                                5
                     next();
                   }

               5.7  发表微博                                                                              6


                   现在网站已经具备了用户注册、登入、页面权限控制的功能,这些功能为网站最核心的
               部分——发表微博做好了准备。在这个小节里,我们将会实现发表微博的功能,完成整个网
               站的设计。                                                                                  7

               5.7.1  微博模型

                   现在让我们从模型开始设计。仿照用户模型,将微博模型命名为 Post 对象,它拥有与
                                                                                                      8
               User 相似的接口,分别是 Post.get 和 Post.prototype.save。Post.get 的功能是从
               数据库中获取微博,可以按指定用户获取,也可以获取全部的内容。 Post.prototype.save
               是 Post 对象实例的方法,用于将对象的变动保存到数据库。

                   创建 models/post.js,写入以下内容:                                                          9

                   var mongodb = require('./db');

                   function Post(username, post, time) {
                                                                                                      10
                     this.user = username;
                     this.post = post;
   125   126   127   128   129   130   131   132   133   134   135