Git Product home page Git Product logo

lin-cms-vue's Introduction

简介 | 快速上手 | 版本日志

Lin CMS 简介

  • Lin-CMS 是林间有风团队经过大量项目实践所提炼出的一套内容管理系统框架

  • Lin-CMS 可以有效的帮助开发者提高 CMS 的开发效率。

  • Lin-CMS 是一套前后端完整的解决方案,后端部署请移步:

注意事项

  1. Lin-CMS 是工程类开源项目,不能保证无缝升级.

  2. 当前分支为 Vue3 版本,如需使用 Vue2.x 请切换至 master 分支。

文档资料

文档地址

线上 Demo

案例

Lin CMS 的特点

Lin CMS 的构筑**是有其自身特点的。下面我们阐述一些 Lin 的主要特点。

Lin CMS 是一个前后端分离的 CMS 解决方案

这意味着,Lin 既提供后台的支撑,也有一套对应的前端系统,当然双端分离的好处不仅仅在于此,我们会在后续提供NodeJSPHP版本的 Lin。如果你心仪 Lin,却又因为技术栈的原因无法即可使用,没关系,我们会在后续提供更多的语言版本。为什么 Lin 要选择前后端分离的单页面架构呢?

首先,传统的网站开发更多的是采用服务端渲染的方式,需用使用一种模板语言在服务端完成页面渲染:比如 JinJa2、Jade 等。 服务端渲染的好处在于可以比较好的支持 SEO,但作为内部使用的 CMS 管理系统,SEO 并不重要。

但一个不可忽视的事实是,服务器渲染的页面到底是由前端开发者来完成,还是由服务器开发者来完成?其实都不太合适。现在已经没有多少前端开发者是了解这些服务端模板语言的,而服务器开发者本身是不太擅长开发页面的。那还是分开吧,前端用最熟悉的 Vue 写 JS 和 CSS,而服务器只关注自己的 API 即可。

其次,单页面应用程序的体验本身就要好于传统网站。

框架本身已内置了 CMS 常用的功能

Lin 已经内置了 CMS 中最为常见的需求:用户管理、权限管理、日志系统等。开发者只需要集中精力开发自己的 CMS 业务即可

Lin CMS 本身也是一套开发规范

Lin CMS 除了内置常见的功能外,还提供了一套开发规范与工具类。换句话说,开发者无需再纠结如何验证参数?如何操作数据库?如何做全局的异常处理?API 的结构如何?前端结构应该如何组织?这些问题 Lin CMS 已经给出了解决方案。当然,如果你不喜欢 Lin 给出的架构,那么自己去实现自己的 CMS 架构也是可以的。但通常情况下,你确实无需再做出架构上的改动,Lin 可以满足绝大多数中小型的 CMS 需求。

举例来说,每个 API 都需要校验客户端传递的参数。但校验的方法有很多种,不同的开发者会有不同的构筑方案。但 Lin 提供了一套验证机制,开发者无需再纠结如何校验参数,只需模仿 Lin 的校验方案去写自己的业务即可。

还是基于这样的一个原则:Lin CMS 只需要开发者关注自己的业务开发,它已经内置了很多机制帮助开发者快速开发自己的业务

快速上手

# clone the project
git clone https://github.com/TaleLin/lin-cms-vue.git

# install dependency
npm install or yarn

# develop
npm run serve or yarn (run) serve

讨论交流

微信公众号搜索:林间有风

QQ群搜索:Lin CMS 官方交流群 或 814597236

版本日志

最新版本 0.4.3

0.4.3

  1. U 升级 element-plus 到 Release 版本 2.1.4
  2. U 升级 vue 相关依赖库版本至最新版本 5.0.3
  3. U 升级 eslint@babel/eslint-parser 版本
  4. A 添加 Accessibility 相关 eslint 检查机制

0.4.2

  1. U 升级 Vue 版本至 3.2.24
  2. U 升级 axios 版本至 0.24.0
  3. U 升级 element-plus 版本至 1.2.0-beta.5

0.4.1

  1. A 新增验证码功能,默认关闭验证码

0.4.0

  1. U 升级到 Vue3 版本

0.3.5

  1. F 统一前端规范,文件夹、文件名统一用单数和小写字母中划线形式
  2. A 新增右键关闭历史记录
  3. F 调整默认 dialog 样式

0.3.4

  1. U 优化变量命名,升级 element-ui 版本,
  2. F Home 组件改为异步加载

0.3.3

  1. A 新增消息中心组件

0.3.2

  1. A 新增图表插件

0.3.1

  1. F 增加历史栏高度

0.3.0

  1. A 新增一个用户可以属于多个分组
  2. F 权限相关 auth right 统一替换为 permission

0.2.2

  1. F 修复 tinymce 富文本动态绑定问题
  2. U 保持代码风格一致优化

0.2.1

  1. A 新增一键清除 reuse tab
  2. A 新增侧边导航搜索,可在 config 配置是否启用
  3. F 修复 post put 等请求不能自动重发问题
  4. U 优化异常处理,框架默认弹出前端配置异常信息,可通过 handleError 和 showBackend 控制本次请求是否开发者自行处理和是否直接展示后端返回异常信息
  5. C 登录用户名字段由 nickname -> username,同时新增 nickname 为昵称字段,可以更新昵称(需后端同步修改)
  6. U 优化了一些移动端适配
  7. C 列表信息字段由 collection -> items, total_nums -> total, 增加 count、page、total_page字段(需后端同步修改)

0.2.0

  1. A 新增图像上传、图像预览、富文本等自定义组件
  2. A 新增 lin-cms-ui 多个基础组件

0.1.0-beta.3

  1. U 首页更新为 card 设计
  2. A 新增头像上传
  3. A 新增单元测试
  4. A 新增switch、rate、tabs、link、tag组件

0.1.0-beta.2

  1. F 修复无感知刷新令牌异常
  2. A 新增入场动画
  3. A 新增全屏功能
  4. A 新增Icon、Form组件

0.1.0-beta.1

  1. U 新UI界面
  2. A button组件、table组件
  3. F 修复令牌刷新异常

0.0.1-alpha.3

  1. A 添加插件机制
  2. U 重构路由设计
  3. A 可配置三级路由导航

0.0.1-alpha.2

  1. U 升级到 vue-cli3.4
  2. A 慕课网专题插件

0.0.1-alpha.1

  1. A 初始化内测版

lin-cms-vue's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lin-cms-vue's Issues

官网格式有问题

重现步骤(可选):
linCMS 官网下面

期望的结果是什么?
下面重复了一些无格式内容,应该没有下面的内容

实际的结果是什么?
image

关于权限管理

希望隐藏掉没有获得相应权限的按钮。
比如:某个用户没有删除权限,就不显示这个删除按钮

建议:table增加列表上移下移功能

对于列表,增加一个可以对行进行上移、下移的功能。移动好后可以进行列表排序的保存,下次再请求数据时,序列自动是上回排好的

登录失败,“network error”,请检查api是否异常

重现步骤(可选):
我安装之后,账号和密码输入正确,super,lin123456,但是每次登录都失败。
提示“network error, 请检查api是否异常”
我检查报错的代码,发现api的地址是:localhost:5000。

于是好奇,我本地并没有部署服务器和数据库啊,这个后台难道不是连接你们远程的服务器吗?还是我们本地的localhost??

另外我另一台公司的电脑是登录OK的。

失败的log是:
VM26:1 OPTIONS http://localhost:5000/cms/user/login net::ERR_CONNECTION_REFUSED
(anonymous) @ VM26:1
dispatchXhrRequest @ xhr.js?76fc:178
xhrAdapter @ xhr.js?76fc:12
dispatchRequest @ dispatchRequest.js?35c6:59
Promise.then (async)
request @ Axios.js?9b45:51
wrap @ bind.js?51f3:9
post @ http.js?8404:71
_callee$ @ user.js?9fd6:49
tryCatch @ runtime.js?4453:45
invoke @ runtime.js?4453:271
prototype.(anonymous function) @ runtime.js?4453:97
asyncGeneratorStep @ user.js:9
_next @ user.js:11
(anonymous) @ user.js:11
(anonymous) @ user.js:11
getToken @ user.js?9fd6:55
_callee$ @ Login.vue?7463:51
tryCatch @ runtime.js?4453:45
invoke @ runtime.js?4453:271
prototype.(anonymous function) @ runtime.js?4453:97
asyncGeneratorStep @ cjs.js?!./node_modules/_babel-loader@8.0.5@babel-loader/lib/index.js!./node_modules/_cache-loader@2.0.1@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.7.0@vue-loader/lib/index.js?!./src/views/login/Login.vue?vue&type=script&lang=js&:9
_next @ cjs.js?!./node_modules/_babel-loader@8.0.5@babel-loader/lib/index.js!./node_modules/_cache-loader@2.0.1@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.7.0@vue-loader/lib/index.js?!./src/views/login/Login.vue?vue&type=script&lang=js&:11
(anonymous) @ cjs.js?!./node_modules/_babel-loader@8.0.5@babel-loader/lib/index.js!./node_modules/_cache-loader@2.0.1@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.7.0@vue-loader/lib/index.js?!./src/views/login/Login.vue?vue&type=script&lang=js&:11
(anonymous) @ cjs.js?!./node_modules/_babel-loader@8.0.5@babel-loader/lib/index.js!./node_modules/_cache-loader@2.0.1@cache-loader/dist/cjs.js?!./node_modules/_vue-loader@15.7.0@vue-loader/lib/index.js?!./src/views/login/Login.vue?vue&type=script&lang=js&:11
login @ Login.vue?7463:51
(anonymous) @ util.js?306b:82
submit @ Login.vue?05a4:31
invokeWithErrorHandling @ vue.runtime.esm.js?6e6d:1854
invoker @ vue.runtime.esm.js?6e6d:2179
original._wrapper @ vue.runtime.esm.js?6e6d:6911
exception.js?30d7:64 error Error: Network Error
at createError (createError.js?3494:16)
at XMLHttpRequest.handleError (xhr.js?76fc:87)
Login.vue?7463:63 Error: Error: Network Error
at handleError (exception.js?30d7:74)
at eval (http.js?8404:59)

连接被拒绝

切换tabs时,数据刷新的讨论

所遇到问题是?
最近使用好几个vue开发的前端框架,包括lin-cms-vue都有这样的问题。

现在使用lin-cms-vue编辑数据时,如果我切换了标签,在回到编辑页面,数据将被清空。
如果这个页面有20个字段需要填写,那这是不是一个灾难?

在我公司的实际业务中,就被业务部门强力吐槽过。

起初切换标签刷新数据,是为了解决保存后,列表页没有更新的问题。但这样,同样带来了新问题?

你期望的 API 是怎样的?

更新建议

  1. 希望可以在权限管理中添加 机构管理 , 用户可以分属不同的角色和机构 .
  2. 希望可以在用户管理中 , 增加封禁/恢复 账号的操作.
  3. 希望可以新增数据统计的部分 , 前端增加图表(echarts).
  4. 希望可以集成elasticsearch(Flask-Elasticsearch) 来进行全文搜索(中文分词)等 .
  5. 希望可以新增一个定时任务处理的模块.
  6. 希望可以有一个数据库定时备份(每天0点备份 , 保存本地,并发送备份SQL文件到指定邮箱) .
  7. 希望可以对数据库的备份形成版本管理 , 支持回滚到某一时刻的备份数据.
  8. 参数校验似乎并没有校验该参数的类型 , 例如Form中IntegerField , 前端提交其他类型数据(str,list,dict,bool)依然可以提交.是否可以对表单验证器的IntegerField等进行继承封装 , 使之校验类型.
  9. 希望可以封装缓存(redis)和接口调用频率限制等.

关于Lin-CMS-图书管理功能

在图书列表里面

  1. 新增查看图书详情功能
    因为仅凭书名和作者信息,管理员可能无法确定是否需要重新编辑,
  2. 新增搜索图书功能
    方便管理员更快地对图书进行定位

IE11支持问题

1、IE11 打不开页面版本号(11.523.17134.0)
2、通过edge打开系统时,新增用户时,页面内容遮挡且无法下拉

日志管理未处理空日志的情况

重现步骤(可选):
Snipaste_2019-04-23_21-39-00

期望的结果是什么?
建议可以考虑后面做一个全局的错误处理,将错误记录一下,方便重现生产环境中的错误
实际的结果是什么?

修改密码业务问题

我觉得修改密码时,用户应该输入下原始的密码,防止恶意修改密码!
而且当密码是原始密码的时候,不应该发PUT请求
我觉得这个细节值得优化一下

权限管理栏,点击相应菜单拖动页面挡住按钮后,点其他菜单后页面没有重置回顶部

重现步骤(可选):
进入用户列表或分组管理页面,向下滚动页面挡住“添加用户”等按钮后,再点击“分组管理”菜单,页面未重置回顶部。导致按钮被遮挡。(咋一看误以为没添加功能~_~)
default

期望的结果是什么?
点击左侧菜单,右侧页面重置回顶部

实际的结果是什么?
目前是保持在上一个页面的位置

[bug report]文档路径写错了

重现步骤(可选):
image
前端快速上手界面→页面路由

期望的结果是什么?
src/config/stage/

实际的结果是什么?
src/router/modules/

关于tab栏的管控

google浏览器下
当点tab右上的小图标关闭时,主舞台未一同消失关没了

期望的结果是什么?
tab栏的标题与主舞台内容,一起消失

实际的结果是什么?
tab栏的标题消失了,而主舞台内容还在

时间戳问题

初学前端可以否教一下时间戳转换

image

 tableColumn: [{
        prop: 'title',
        label: '标题',
      },{
        prop: 'create_time', // 这里不知道如何变换?
        label: '创建日期',
      }],

看到在 Log.vue 中可以 {{log.time | dateTimeFormatter}}

想知道在表格这里如何操作?
虽然问题很蠢但还是希望可以收到回复。谢谢。

项目在Firefox、Edge浏览器下显示异常

实际的结果是什么?

  1. 右上角X未显示
    qq 20190118152825
  2. 按钮文字未垂直居中
    button
  3. 按钮出现1px白边
    1px
  4. 删除按钮点击取消后出现虚线(Edge)
    red
  5. textarea高度失效,在Firefox下拖拉有明显迟滞感,Edge无法拖拉
    textarea

我吧自己写的文件拷贝进来,一直提示app下面的create_app方法找不到

这并不是cms问题,是我的个人疑问。没地方问,就发在这了。

引入create_app这个方法,明明有的,但是运行确说找不到 cannot import name ‘ create_app’ from app.app‘

请问这是什么原因造成的。刚学python,我朋友买了七月老师的高级编程,我买了flask(下)。所以很多基础问题不是很懂。

refreshToken 设计的安全漏洞

重现步骤(可选):
我们的lin-cms-vue 的accessToken refreshToken都保存在pc端windows.Cookies里,并且周期超过浏览器周期,这样会关闭浏览器后refreshToken 仍然存在当地硬盘,这样设计安全方面是不是有漏洞?
期望的结果是什么?
我觉得refreshToken不应缓存当地,直接放在state 内存里,退出就清除才安全。
实际的结果是什么?

npm run serve 报错

[email protected] serve D:\ASBot\frontend\demos\lin-cms-vue
node script/plugin-get-config.js && vue-cli-service serve

配置插件...
插件配置完成: D:\ASBot\frontend\demos\lin-cms-vue\src\config\stage\plugins.js

INFO Starting development server...
65 6 98% after emitting CopyPlugin

ERROR Failed to compile with 2 errors 12:41:16

error in ./src/components/layout/User.vue?vue&type=style&index=0&id=b0dd6460&lang=scss&scoped=true&

Module build failed (from ./node_modules/sass-loader/lib/loader.js):

border-bottom: 1px solid #dae1ed;
^
Expected selector.

188 │ .user-dialog /deep/ .el-dialog .el-dialog__header{
│ ^

stdin 188:14 root stylesheet
in D:\ASBot\frontend\demos\lin-cms-vue\src\components\layout\User.vue (line 188, column 14)

@ ./node_modules/vue-style-loader??ref--8-oneOf-1-0!./node_modules/css-loader??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/layout/User.vue?vue&type=style&index=0&id=b0dd6460&lang=scss&scoped=true& 4:14-476 14:3-18:5 15:22-484
@ ./src/components/layout/User.vue?vue&type=style&index=0&id=b0dd6460&lang=scss&scoped=true&
@ ./src/components/layout/User.vue
@ ./src lazy ^./.*$ namespace object
@ ./src/router/home-router.js
@ ./src/router/routes.js
@ ./src/router/index.js
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://192.168.56.1:8081/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

error in ./src/assets/styles/realize/element-variables.scss

Module build failed (from ./node_modules/sass-loader/lib/loader.js):

display: none;
^
Expected selector.

440 │ .el-menu--vertical /deep/ .icon-erjizhibiao{
│ ^

stdin 440:20 root stylesheet
in D:\ASBot\frontend\demos\lin-cms-vue\src\assets\styles\realize\element-variables.scss (line 440, column 20)

@ ./src/assets/styles/realize/element-variables.scss 4:14-254 14:3-18:5 15:22-262
@ ./src/main.js
@ multi (webpack)-dev-server/client?http://192.168.56.1:8081/sockjs-node (webpack)/hot/dev-server.js ./src/main.js

用pm2 来运行koa 报错

按照文档的步骤,可以将koa运行起来,ℹ loading a route: /cms/user/ 13:59:12
ℹ loading a route: /cms/user/change_password 13:59:12
ℹ loading a route: /cms/user/refresh 13:59:12
ℹ loading a route: /cms/user/auths 13:59:12
ℹ loading a route: /cms/user/information 13:59:12
ℹ loading a route: /cms/user/avatar 13:59:12
ℹ loading a router instance :bookApi from file: /data/release/wxcms/app/api/v1/book.js 13:59:12
ℹ loading a route: /v1/book/:id 13:59:12
ℹ loading a route: /v1/book/ 13:59:12
ℹ loading a route: /v1/book/search/one 13:59:12
ℹ loading a route: /v1/book/ 13:59:12
ℹ loading a route: /v1/book/:id 13:59:12
ℹ loading a route: /v1/book/:id (repeated 1 times) 13:59:12
ℹ loading a route: /v1/book/ 13:59:12
2019-07-03 13:59:12,917 INFO 10397 --- [VM_0_13_centos] - listening at http://localhost:5000并得到,“心上无垢,林间有风"提示,但是,用pm2来运行时报错,/root/.pm2/logs/starter-out.log last 15 lines:
/root/.pm2/logs/starter-error.log last 15 lines:
1|starter | { Error: ENOENT: no such file or directory, scandir '/data/release/wxcms/app/app/config'
1|starter | at Object.fs.readdirSync (fs.js:904:18)
1|starter | at applyConfig (/data/release/wxcms/app/starter.js:9:20)
1|starter | at run (/data/release/wxcms/app/starter.js:18:3)
1|starter | at Object. (/data/release/wxcms/app/starter.js:27:1)
1|starter | at Module._compile (module.js:653:30)
1|starter | at Object.Module._extensions..js (module.js:664:10)
1|starter | at Module.load (module.js:566:32)
1|starter | at tryModuleLoad (module.js:506:12)
1|starter | at Function.Module._load (module.js:498:3)
1|starter | at Object. (/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:27:21)
1|starter | errno: -2,
1|starter | code: 'ENOENT',
1|starter | syscall: 'scandir',
1|starter | path: '/data/release/wxcms/app/app/config' }

PM2 | App [starter:1] exited with code [0] via signal [SIGINT]
PM2 | App [starter:1] starting in -fork mode-
PM2 | App [starter:1] online
1|starter | { Error: ENOENT: no such file or directory, scandir '/data/release/wxcms/app/app/config'
1|starter | at Object.fs.readdirSync (fs.js:904:18)
1|starter | at applyConfig (/data/release/wxcms/app/starter.js:9:20)
1|starter | at run (/data/release/wxcms/app/starter.js:18:3)
1|starter | at Object. (/data/release/wxcms/app/starter.js:27:1)
1|starter | at Module._compile (module.js:653:30)
1|starter | at Object.Module._extensions..js (module.js:664:10)
1|starter | at Module.load (module.js:566:32)
1|starter | at tryModuleLoad (module.js:506:12)
1|starter | at Function.Module._load (module.js:498:3)
1|starter | at Object. (/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:27:21)
1|starter | errno: -2,
1|starter | code: 'ENOENT',
1|starter | syscall: 'scandir',
1|starter | path: '/data/release/wxcms/app/app/config' }
pm2上其它项目运行正常。请教一下,是我那里没有配置对,还是其它问题?

refresh token获取失败

使用lin-cms-koa启动后端服务,打开lin-cms-vue登录一直报refresh token获取失败

期望的结果是什么?
正常登录
实际的结果是什么?
登录失败,并且在network里发送了79次无意义的请求,

页面兼容性问题

1.图书列表滚动超出问题
qq 20190212151934
2.项目中存在一些IE10/11不支持的css3属性
如:position: sticky;
3.返回顶部 scrollTo方法在IE10/11 Edge下报错

选择某菜单后,出现的SwiperSlide会把头像顶到头部

重现步骤(可选):
1.进入到about页面,没有SwiperSlide的状态。
image
2.随意点击某项菜单。
image

期望的结果是什么?
和没有SwiperSlide保持一致,距离窗口有一定的距离。
实际的结果是什么?
头像被顶到浏览器边缘

Lin-CMS的前端bug-添加图书

添加图书成功之后,点击查看图书列表,没有显示新增图书,只有再次刷新界面时,才会显示最新添加的图书

Lin-CMS前端bug

k9 lk uqnr z0g5p1 874aj
上面是bug截图, 浏览器用的谷歌,刚开始打开是没有问题的,然后就各种点击,就出现了上面的情况,这种情况出现过好几次,但是经过多次试验也没找到bug是怎么触发的.

令牌刷新逻辑

重现步骤(可选):

 if (!sessionStorage.getItem('flag')) {
      sessionStorage.setItem('flag', true)
   // 这里忽略了一个情况,这里如果异常了(实测),但是上面又设置了‘flag’为true,这时候再怎么刷新 也不会去重新请求令牌了。得等页面会话结束
      await User.getRefreshToken()  
      const result = await refreshRequest(store.state.refreshOptions)
      return result
    }

期望的结果是什么?
异常捕获处理
实际的结果是什么?
看到有TODO,还是待优化,可以考虑纳入下

日志管理--优化建议

按人员的查询时,查询出来后,列表栏,建议显中,已选项。
如下图的super建议显示出来:
image

SequelizeConnectionError: Unknown database 'lin-cms'

'use strict';

module.exports = {
db: {
database: 'lin-cms',
host: 'localhost',
dialect: 'mysql',
dialectOptions: {
socketPath: '/tmp/mysql.sock' // 指定套接字文件路径
},
port: 3306,
username: 'root',
password: 'fljzjk521',
logging: false,
timezone: '+08:00'
},
secret:
'\x88W\xf09\x91\x07\x98\x89\x87\x96\xa0A\xc68\xf9\xecJJU\x17\xc5V\xbe\x8b\xef\xd7\xd8\xd3\xe6\x95*4'
};

前端bug-删除图书后页面原先的数据还在,页面需要刷新

重现步骤(可选):

  1. npm start serve
  2. 添加图书
  3. 删除图书

期望的结果是什么?

  1. 删除后页面能够去掉删除的数据
  2. 数据库图书数据被删除,将图书删除操作信息添加到log中

实际的结果是什么?

点击删除图书后出现如图所示问题
图书删除

连续高频率点击登陆时,login请求发送多次

重现步骤(可选):
连续高频率点击登陆时
会多次发出login请求
期望的结果是什么?
点击登陆时,在未拿到response不能重复发送请求

这里建议加个loading效果,或者对请求进行过滤

如何解决跨域问题

你好,请问部署到线上环境的时候,出现跨域问题,请问如何基于此项目解决呢?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.