分享我个人学习项目:系统管理平台(基于vue,koa2前后端分离)。
发布于 7 年前 作者 alwxkxk 12303 次浏览 最后一次编辑是 6 年前 来自 分享

这是一个前后端分离的个人学习项目。 体验网址:http://akoa.scaugreen.cn 分离部署(avue作为静态网站部署在七牛云上,akoa仍部署在服务器里):http://peaywop1k.bkt.clouddn.com 欢迎大虾指点,与新手相互交流学习。 登陆界面,可任意注册用户,管理员账号密码皆为为akoa(大家不要改管理员密码)。 1.PNG 管理员的界面: 2.PNG vue作前端(就叫avua)https://github.com/alwxkxk/avue

koa2作后端(就叫akoa)https://github.com/alwxkxk/akoa

项目说明

avue使用了element的框架,后端环境是mysql+redis+nginx+node8。 跟其它项目最大的不同点或许在于:具体设计思路使用markdown记录下来,并转化为html方便阅读。 都在avue、akoa项目下的doc目录下: 4.PNG 欢迎大虾指点,新手相互交流学习。

暂时实现的功能点

  • 基本完成用户基本功能注册、登陆、退出、修改密码、头像、昵称等,还有管理员的功能。(管理员的界面不一样)
  • 有初始化脚本,每次部署时运行npm run init即可检测redis,mysql是否可使用,并创建数据表,添加管理员账号。
  • redis存有账号列表,新注册用户时可快速检测出该用户是否已经被注册。
  • 引入socketio,实时显示服务器状态。
  • 完成文件系统。供用户上传下载文件.
  • 完成分离部署(avue可部署在七牛云等静态网站上)
  • selenium自动化测试 更多详细功能点可以查看doc目录下的设计文档。

下一步计划

学习研究各方面性能的测试与优化。 完成消息系统。 然后就没了,为什么不继续搞? 因为继续搞还不如先学typescript,再重新搞一个新项目,重构起来更爽。 估计做没完就要过年了,过完年后去深圳找工作0。0 已经找到工作了~

28 回复

添加socketio,实现实时显示服务器状态。 捕获.PNG

初步完成 文件系统,允许用户上传下载删除文件。(PS:别乱传什么奇奇怪怪的文件~所有人都会看到的…) 管理员可以操作所有用户的文件。 文件.PNG

  • 运行后端项目
Error: Cannot find module 'koa-body-parsers'
    at Function.Module._resolveFilename (module.js:485:15)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-better-body/utils.js:11:21)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
  • 然后安装 koa-body-parsers
  • 然后前端登录时候, 后端报错 (node_modules/co/index.js)
发生异常: TypeError
TypeError: Cannot set property 'save' of undefined
    at Object.keys.forEach (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-body-parsers/index.js:18:22)
    at Array.forEach (native)
    at Object.module.exports [as bodyParsers] (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-body-parsers/index.js:17:24)
    at Object.setParsers (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-better-body/utils.js:121:9)
    at Object.plugin (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-better-body/index.js:49:13)
    at plugin.next (<anonymous>)
    at onFulfilled (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/co/index.js:65:19)
    at /Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/co/index.js:54:5
    at Promise (<anonymous>)
    at Object.co (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/co/index.js:50:10)
    at converted (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-convert/index.js:17:15)
    at dispatch (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-better-router/node_modules/koa-compose/index.js:44:32)
    at /Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-better-router/node_modules/koa-compose/index.js:36:12
    at /Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-better-router/index.js:547:46
    at dispatch (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-compose/index.js:42:32)
    at next (/Users/d.hilter/code/node/vue+koa+amdin/akoa/node_modules/koa-compose/index.js:43:18)

请问这个怎么解决啊 非常希望能解决下

@dmodaii 可能是他的 package.json 没有写券 你npm 一下对应的包

@dmodaii 如果怀疑是koa-body-parsers安装有问题。因为并没有直接用到koa-body-parsers,是koa-better-body这个模块用到。应该直接安装npm install 就可以运行的,具体原因及解决办法我也不确定,我提供两个方法你先试试: 1.删除原项目 ,重新git clone ,然后将代理指向国内, 重新安装试试看行不行。

npm config set registry https://registry.npm.taobao.org npm install

2.删除原项目 ,重新git clone ,将package-lock.json文件删除,再尝试安装:npm install。

另外在说明文档上README.md补充了npm run init 来检查mysql redis的是否正确运行并初始化。 捕获.PNG

如果你能解决此问题,麻烦再次反馈给我,十分感谢。

这个内存,是系统内存,还是node应用占用内存.

如果是node占用的内存,那就有点可怕了…350M

Node确实很耗内存的,node8+mongoDB3.2更是内存大户

哦对了,献几个Blog简单好记的小域名吧 方便dalao们年后组小站,学大前端和Node

阿里云直达 attr.top prop.top

hblog.top kblog.top lblog.top nblog.top rblog.top sblog.top

@axetroy 系统内存 ,akoa内存好像几十M。 主要是MySQL占的内存有点大。 QQ截图20180205084005.pngQQ截图20180205083943.png

@alwxkxk 解决了, 十分感谢, 正打算用你这个项目弄一下前后端端, 考虑用mongo

@dmodaii 不客气。 有什么问题欢迎继续问我。

@alwxkxk 请问内存使用情况是怎么拿到的?

@jamiesoung 方法1:首先是想到使用node的childprocess.exec,在linux下执行top,free等,再处理一下获取内存信息。 方法2: 在github里找到模块systeminformation。

@alwxkxk 明白了,谢谢~

最近玩了一下selenium来操作浏览器自动模拟登陆,蛮好玩的自动化测试,如动态图所示:(启动脚本后都是自动动作,不是我个人操作的。)具体代码与说明都放在avue项目下。 selenium自动化测试.gif

老大让我试一下chromeless来做爬虫,折腾了发现跟selenuim蛮像,有空整理出文档分享给大家。

selenium 挺好玩我也去试下

真尴尬,akoa被别人改密码了… 逼我重新初始化数据库…再次提醒不要改akoa密码。 (怪不得这几天没得到星星)

手机cnode客户端打开体验网址排版错误

@wangziling 没有针对移动端进行布局。 (即不是响应式的…)

现在网站已经被 我用来做博客了~

6666,我做了个vue+koa+mysql的商城系统,可否加个好友,交流一下

我已经重新部署起来了。。。。

@1134506391 其实呢,我只是简单地写了一下,并没有深入研究。

请问一下您的sql防止注入全部封装在mysql.js文件里吗

@pk110 是别人库已经封装好了一个函数防止注入的,我直接调用。(mysql.format)

@alwxkxk 你说的是下载的这个mysql模块有这个功能吗

回到顶部