这是一个前后端分离的个人学习项目。 体验网址:http://akoa.scaugreen.cn 分离部署(avue作为静态网站部署在七牛云上,akoa仍部署在服务器里):http://peaywop1k.bkt.clouddn.com 欢迎大虾指点,与新手相互交流学习。 登陆界面,可任意注册用户,管理员账号密码皆为为akoa(大家不要改管理员密码)。 管理员的界面: 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目录下: 欢迎大虾指点,新手相互交流学习。
暂时实现的功能点
- 基本完成用户基本功能注册、登陆、退出、修改密码、头像、昵称等,还有管理员的功能。(管理员的界面不一样)
- 有初始化脚本,每次部署时运行
npm run init
即可检测redis,mysql是否可使用,并创建数据表,添加管理员账号。 - redis存有账号列表,新注册用户时可快速检测出该用户是否已经被注册。
- 引入socketio,实时显示服务器状态。
- 完成文件系统。供用户上传下载文件.
- 完成分离部署(avue可部署在七牛云等静态网站上)
- selenium自动化测试 更多详细功能点可以查看doc目录下的设计文档。
下一步计划
学习研究各方面性能的测试与优化。 完成消息系统。 然后就没了,为什么不继续搞? 因为继续搞还不如先学typescript,再重新搞一个新项目,重构起来更爽。 估计做没完就要过年了,过完年后去深圳找工作0。0 已经找到工作了~
添加socketio,实现实时显示服务器状态。
初步完成 文件系统,允许用户上传下载删除文件。(PS:别乱传什么奇奇怪怪的文件~所有人都会看到的…) 管理员可以操作所有用户的文件。
- 运行后端项目
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的是否正确运行并初始化。
如果你能解决此问题,麻烦再次反馈给我,十分感谢。
mark
这个内存,是系统内存,还是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占的内存有点大。
mark
@alwxkxk 解决了, 十分感谢, 正打算用你这个项目弄一下前后端端, 考虑用mongo
@dmodaii 不客气。 有什么问题欢迎继续问我。
@alwxkxk 请问内存使用情况是怎么拿到的?
@jamiesoung 方法1:首先是想到使用node的childprocess.exec,在linux下执行top,free等,再处理一下获取内存信息。 方法2: 在github里找到模块systeminformation。
@alwxkxk 明白了,谢谢~
最近玩了一下selenium来操作浏览器自动模拟登陆,蛮好玩的自动化测试,如动态图所示:(启动脚本后都是自动动作,不是我个人操作的。)具体代码与说明都放在avue项目下。
老大让我试一下chromeless来做爬虫,折腾了发现跟selenuim蛮像,有空整理出文档分享给大家。
selenium 挺好玩我也去试下
真尴尬,akoa被别人改密码了… 逼我重新初始化数据库…再次提醒不要改akoa密码。 (怪不得这几天没得到星星)
手机cnode客户端打开体验网址排版错误
@wangziling 没有针对移动端进行布局。 (即不是响应式的…)
现在网站已经被 我用来做博客了~
6666,我做了个vue+koa+mysql的商城系统,可否加个好友,交流一下
我已经重新部署起来了。。。。
@1134506391 其实呢,我只是简单地写了一下,并没有深入研究。
请问一下您的sql防止注入全部封装在mysql.js文件里吗
@pk110 是别人库已经封装好了一个函数防止注入的,我直接调用。(mysql.format)
@alwxkxk 你说的是下载的这个mysql模块有这个功能吗