# 多人社区案例
**Repository Path**: zxinc/small_community_cases
## Basic Information
- **Project Name**: 多人社区案例
- **Description**: 多人社区---node综合案例(学完node做的一个项目)
- **Primary Language**: NodeJS
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2019-02-11
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# node综合web案例
### 1.目录结构

```
## 使用到的npm包:
```
```javascript
"dependencies": {
"art-template": "^4.13.2",
"blueimp-md5": "^2.10.0",
"body-parser": "^1.18.3",
"bootstrap": "^3.3.7",
"express": "^4.16.4",
"express-art-template": "^1.0.1",
"express-session": "^1.15.6",
"jquery": "^3.3.1",
"mongoose": "^5.4.11"
}
```
### 2.模板页
- art-template子模版
```javascript
{{include '../partials/header.html'}}
{{include '../partials/footer.html'}}
```
- art-template模板继承
```shell
{{extend './layouts/layout.html'}}
{{block 'head'}}
{{/block}}
```
### 3.路由设计
| 请求方法 | 请求路径 | get参数 | post参数 | b备注 |
| :------: | :-------: | :-----: | :----------------------: | :--------: |
| GET | / | | | 首页 |
| GET | /login | | | 渲染登录页 |
| POST | /login | | email,password | 登录请求 |
| GET | /register | | | 渲染注册页 |
| POST | /register | | email,nickname,password, | 注册请求 |
| GET | /logout | | | 退出 |
### 4. 异步表单请求(用户体验好)
```javascript
```
### 5.md5加密
```javascript
let md5 = require('blueimp-md5')
```
[md5介绍](https://www.npmjs.com/package/blueimp-md5)
```javascript
body.password = md5(md5(body.password))//密码加密
```
### 6.session使用
```javascript
let session=require('express-session')
```
[express-session介绍](https://www.npmjs.com/package/express-session)
配置:
```javascript
app.use(session({
secret: 'itcast',//配置加密字符串(自定义)
resave: false,
saveUninitialized: true
}))
```
使用:
```javascript
//用户存在,登录成功,通过session记录登录状态
req.session.user = user
```
```javascript
//发送数据,客户端ajax请求数据渲染页面
router.get('/', function (req, res) {
res.render('index.html', {
user: req.session.user
})
})
```