# vue+iview+nuxt+mysql+jwt+sequelize+SSR
**Repository Path**: simo2018/NUXT.SSR
## Basic Information
- **Project Name**: vue+iview+nuxt+mysql+jwt+sequelize+SSR
- **Description**: 基于vue + iview + nuxt + mysql + jwt + sequelize + redis + SSR 的服务端渲染框架
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2021-03-21
- **Last Updated**: 2021-03-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# UUPT.SSRServer.Web 服务端渲染框架
> UUPT.SSRServer.Project
## 构建步骤
```bash
# install dependencies
$ npm install
# 开发调试模式
$ npm run dev
# 生产环境操作步骤
$ npm run build
$ npm run start
# 使用 pm2 启动
# 线上发布顺序 先将打包后得文件.nuxt上传,然后上传 config 和 server。
$ npm run build
$ pm2 start app.json # 添加服务监听
# 生成静态目录
$ npm run generate
```
```bash
# 目录结构
.nuxt # 打包以后得静态资源路径
config # node服务配置
server # 服务端文件夹
dist # generate 生成得静态目录
web # web文件
nuxt.config.js # nuxt.js 配置文件
package.json
.babelrc
server.js # PM2 启动文件
```
### /web/pages/home.vue 有 vue文件 API示例
### /nuxt.config.js 内含API使用示例。
### 详细文档请看下方链接。
* [Nuxt.js 文档地址](https://www.nuxtjs.cn/guide).
* [Nuxt.js 配置API文档地址](https://www.nuxtjs.cn/api).
* [sequelize 配置中文API文档地址](https://github.com/demopark/sequelize-docs-Zh-CN).
* [sequelize 配置英文API文档地址](https://sequelize.org/v5/).
* [菜鸟教程 redis使用方法](https://www.runoob.com/redis/redis-conf.html).
```bash
# 路由组件
# default.vue 该组件只适用于在布局中显示页面组件(即非布局内容)。
# 嵌套路由时使用
# 路由跳转
```
```bash
const { Op } = require("sequelize");
useraccount.findAll({
where: {
[Op.and]: [{ a: 5 }, { b: 6 }], // (a = 5) AND (b = 6)
[Op.or]: [{ a: 5 }, { b: 6 }], // (a = 5) OR (b = 6)
someAttribute: {
// 基本
[Op.eq]: 3, // = 3
[Op.ne]: 20, // != 20
[Op.is]: null, // IS NULL
[Op.not]: true, // IS NOT TRUE
[Op.or]: [5, 6], // (someAttribute = 5) OR (someAttribute = 6)
// 使用方言特定的列标识符 (以下示例中使用 PG):
[Op.col]: 'user.organization_id', // = "user"."organization_id"
// 数字比较
[Op.gt]: 6, // > 6
[Op.gte]: 6, // >= 6
[Op.lt]: 10, // < 10
[Op.lte]: 10, // <= 10
[Op.between]: [6, 10], // BETWEEN 6 AND 10
[Op.notBetween]: [11, 15], // NOT BETWEEN 11 AND 15
// 其它操作符
[Op.all]: sequelize.literal('SELECT 1'), // > ALL (SELECT 1)
[Op.in]: [1, 2], // IN [1, 2]
[Op.notIn]: [1, 2], // NOT IN [1, 2]
[Op.like]: '%hat', // LIKE '%hat'
[Op.notLike]: '%hat', // NOT LIKE '%hat'
[Op.startsWith]: 'hat', // LIKE 'hat%'
[Op.endsWith]: 'hat', // LIKE '%hat'
[Op.substring]: 'hat', // LIKE '%hat%'
[Op.iLike]: '%hat', // ILIKE '%hat' (不区分大小写) (仅 PG)
[Op.notILike]: '%hat', // NOT ILIKE '%hat' (仅 PG)
[Op.regexp]: '^[h|a|t]', // REGEXP/~ '^[h|a|t]' (仅 MySQL/PG)
[Op.notRegexp]: '^[h|a|t]', // NOT REGEXP/!~ '^[h|a|t]' (仅 MySQL/PG)
[Op.iRegexp]: '^[h|a|t]', // ~* '^[h|a|t]' (仅 PG)
[Op.notIRegexp]: '^[h|a|t]', // !~* '^[h|a|t]' (仅 PG)
[Op.any]: [2, 3], // ANY ARRAY[2, 3]::INTEGER (仅 PG)
// 在 Postgres 中, Op.like/Op.iLike/Op.notLike 可以结合 Op.any 使用:
[Op.like]: { [Op.any]: ['cat', 'hat'] } // LIKE ANY ARRAY['cat', 'hat']
// 还有更多的仅限 postgres 的范围运算符,请参见下文
}
}
});
```
### 文档目录
```bash
|-- UUPT.SSRServer.Web
|-- .babelrc # babel 配置
|-- .editorconfig #
|-- .gitignore # 忽略文件
|-- jest.config.js # 自动化测试jest文件
|-- nuxt.config.js # nuxt项目配置文件
|-- package.json
|-- app.js # pm2启动时,app.json调用得文件
|-- app.json # pm2 启动文件
|-- .nuxt # 生产环境打包目录
|-- config # 配置文件
| |-- basedir.json # nuxt.config.js 文件夹配置
| |-- jwt.json # jwt加密字符串文件
| |-- mysql-config.json # mysql 配置文件
|-- dist # generate 生成静态目录
|-- server # 服务端渲染及路由配置文件夹
| |-- index.js # 服务启动文件
| |-- api # 接口文件夹
| | |-- index.js # 接口暴露文件
| | |-- login.js # 登陆接口文件
| | |-- useraccount.js # 用户接口
| |-- controller # 控制器
| | |-- login.js # 登陆控制
| | |-- useraccount.js # 用户控制
| |-- middleware # 服务端中间件
| | |-- log4.js # 日志中间件文件
| |-- model # 数据模型
| | |-- useraccount.js # 用户数据模型
| |-- util # 工具方法
| |-- redis.js # redis工具
| |-- sequelize.js # mysql sequelize工具
| |-- verifytoken.js # jwt 验证文件
|-- test # 测试用例
| |-- Logo.spec.js # 测试文件
|-- web # 前端文件
|-- assets # 资源文件夹
| |-- README.md
| |-- js
| |-- axios.js # axios封装
|-- components # 组件文件夹
| |-- Logo.vue
| |-- README.md
|-- layouts # 默认入口文件夹 类似于 webpack 中 index.html
| |-- default.vue # 默认入口vue文件 跟 vue项目入口文件 APP.vue 类似
| |-- README.md
|-- middleware # 中间件
| |-- README.md
|-- pages # 页面
| |-- demo.vue # 会自动生成 /demo 路由
| |-- index.vue # 访问根目录时默认文件
| |-- list.vue # 生成 /list 路由
| |-- README.md
| |-- list # 如果同时存在该文件和目录则是嵌套路由
| |-- hehe.vue # 自动生成 /list/hehe 路由
|-- plugins # 插件管理
| |-- axios.js # axiox插件
| |-- iview.js # iview.js 插件
| |-- README.md
|-- static # 静态资源位置
| |-- favicon.ico
| |-- README.md
|-- store # 状态管理
|-- README.md
```