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

5.6  用户注册和登录    111


                   app.configure(function(){                                                          1
                     app.set('views', __dirname + '/views');
                     app.set('view engine', 'ejs');
                     app.use(express.bodyParser());
                     app.use(express.methodOverride());
                     app.use(express.cookieParser());
                     app.use(express.session({                                                        2
                       secret: settings.cookieSecret,
                       store: new MongoStore({
                         db: settings.db
                       })
                                                                                                      3
                     }));
                     app.use(app.router);
                     app.use(express.static(__dirname + '/public'));
                   });
                   其中 express.cookieParser() 是 Cookie 解析的中间件。express.session() 则                      4
               提供会话支持,设置它的 store 参数为 MongoStore 实例,把会话信息存储到数据库中,
               以避免丢失。
                   在后面的小节中,我们可以通过 req.session 获取当前用户的会话对象,以维护用
               户相关的信息。                                                                                5


               5.6.3  注册和登入

                   我们已经准备好了数据库访问和会话存储的相关信息,接下来开始实现网站的第一个功                                             6
               能,用户注册和登入。
                   1. 注册页面
                   首先来设计用户注册页面的表单,创建 views/reg.ejs 文件,内容是:
                                                                                                      7
                   <form class="form-horizontal" method="post">
                     <fieldset>
                       <legend>用户注册</legend>
                       <div class="control-group">
                         <label class="control-label" for="username">用户名</label>                      8
                         <div class="controls">
                           <input type="text" class="input-xlarge" id="username" name="username">
                           <p class="help-block">你的账户名称,用于登录和显示。</p>
                         </div>
                                                                                                      9
                       </div>
                       <div class="control-group">
                         <label class="control-label" for="password">口令</label>
                         <div class="controls">
                           <input type="password" class="input-xlarge" id="password" name="password">
                                                                                                      10
                         </div>
   113   114   115   116   117   118   119   120   121   122   123