该项目是仿照某些网站的留言列表做的一些小功能,项目没有划分 M V C,使用的前台技术是 Bootstrap,后台使用的是 Node.js,模板引擎使用的是 EJS,数据库是 MySQL。
依赖
- Bootstrap
- jQuery
- 使用 jQuery 的 ajax 做异步无刷新列表加载
- EJS
- Node.js
- express
- body-parser express 的中间件(middleware),可以用来解析 post 请求体数据
- mysql
- moment
- express
- js-cookie
安装依赖
|
|
package.json (包括项目后面流程安装的依赖包)
|
|
页面搭建:Bootstrap
最终完整页面
|
|
数据库设计: feedback
名 | 类型 | 长度 | 小数点 | 不是null | 主键 |
---|---|---|---|---|---|
id | int | yes | yes | ||
message | text | yes | |||
name | varchar | 50 | yes | ||
varchar | 50 | yes | |||
data | datatime | yes |
页面入口/后台数据处理 app.js
安装依赖:
|
|
app.js
|
|
渲染页面 EJS
|
|
前台 ajax 请求
|
|
后台 post 请求处理
express 的 body-parser 中间键
配置中间键:
|
|
日期格式化包:
|
|
格式化日期方法:
|
|
后台处理 post 请求
|
|
响应给前台后,前台处理响应成功逻辑:
|
|
注册登录模块
登录页面
注册页面
流程
添加表 users
索引 | 类型 | 长度 | 小数点 | 不是null | 主键 |
---|---|---|---|---|---|
id | int | 50 | yes | yes | |
username | varchar | 50 | yes | ||
password | varchar | 50 | yes | ||
varchar | 50 | yes | |||
create_time | datetime | yes | |||
last_signin_time | datetime | yes |
处理注册页面后台逻辑
|
|
处理注册页面前台逻辑
|
|
记住用户名(通过前台来写)
方法一:
安装插件:
|
|
设置 cookie:
|
|
在 express 中使用 cookie-parser
安装:
|
|
配置:
|
|
方法二:session 保持状态
session 和 cookie 结合使用。
在 express 中使用 session
安装:
|
|
配置:
|
|
处理用户注册和登录的状态
|
|
最终的 app.js
|
|
处理登录页面
最终的 singin.html
|
|
处理注册页面
最终的 singup.html
|
|
数据库连接
连接数据库关键代码:db.js
|
|
css
|
|