当前位置: 首页 > 后端技术 > Node.js

XBlog:Vue+Express+Mongodb全栈可扩展完整博客系统

时间:2023-04-03 20:50:12 Node.js

地址https://github.com/billyhoomm...http://blog.billyhu.com说明(Instructions)本项目背景基于onexpress,mongodb,前端基于Vue2.0全家桶,bootstrap,scss预编译器,以及一些工具插件项目。鉴于云服务1M的小水管,项目中静态文件和图片使用七牛云CDN(带构建自动上传功能)项目结构(Projectstructure)|-AFront//前端代码|----构建//网络包|----config//webpack的基本配置|----src//包含api,所有vue组件,所有插件|----index.html//首页模板文件|----包.json|-bin//启动文件|-config//配置文件和数据库模型|-controllers//api路由请求控制|-md//接口文件|-public//静态资源文件|-routes//路由|-utils//GeneralTools|-views//模板文件(所有错误页面,首页会转public/index.html)|-app.js//express|-cache.js//本地缓存控制|-package.json页面结构(页面结构)|----前台显示----|-首页//个人信息和简单指南航空|-博客|-----最新文章//最近10篇文章|-----存档//博文时间存档|-----标签库//文章分类|-音乐|-背景切换|-登录|----后台管理----|-控制台//PV统计、访问区域统计等数据统计图表|-我的简介//个人信息管理|-标签管理//标签增删改查修改检查|-文章管理//文章的增删改查(编辑使用markdown)|-文章评论//评论查询、回复、评论等|-退出|----------------前端(Front)*功能(Features)全屏自适应背景图片可随意配置切换...Plugins(插件)vue-moment(时间格式化)moment.js(日期格式化)font-awesome(字体图标)vStorage.js(localStorage和sessionStorage管理)bootstrap(sass版,按需使用)jquery(slim版)bootstrap-datetimepicker(日期选择器)vue-multiselect(多选下拉框组件)dropzone.js(上传插件)fastclick.js(手机端延迟问题)highlight.js(代码高亮,用户后台文章编辑)marked(markdown预览)clipboard(复制到剪贴板,上传图片获取图片访问地址)js-md5(encryption)echarts(仪表盘图表统计)配置文件(Config)前端配置文件AFront/src/config,包含个人信息,所有api地址,静态资源(音乐,图片等)的CDN地址。做交叉后台domainMY_INFO_ID:用于获取个人信息的info_id(用户注册界面的字段和规范后面会详细说明)MY:回复网友评论时的昵称EMAIL:回复网友评论时的邮箱评论...开始(Start)cdAFrontnpminpmrundev#开发环境npmrunbuild#Buildbackend(server)*全局配置(Config)config/config.js:该配置包括mongodb数据库的连接配置和七牛云的文件上传接口需要的配置。关于七牛云的配置,可以自己注册七牛然后申请空间(免费空间就够了),如果服务器是1M的小水管,静态文件放在上面后访问速度还是挺不错的CDN,CDN自动上传配置utils/cdn_sync。上传所有文件到七牛云TODO对应的空间:文件和文件夹过滤功能以后有时间会加入,集成成一个webpack插件开始(Start)Nodejs(6.0.0+)/npm/Mongodb安装(不要自己谷歌);pm2(项目启动管理)进入config/config.js配置数据库信息和七牛云账号设置npmrunstartregistration个人信息注册界面可以参考API文档md/api.md,成功后可以使用Postman等模拟工具注册,将返回注册用户的_id。这个_id就是上面提到的MY_INFO_ID,作为用户登录的依据,请妥善保管。参数(Post):url:/api/registerheader:Content-Typeapplication/json;charset=utf-8{"username":"登录用户名","password":"password","is_admin":true,//是否是admin用户"full_name":"nickname","position":"yourposition","address":"你的地址","motto":"你的心情","personal_state":"你的自我介绍","img_url":"http://你的头像地址"}Result:{"code":"1","msg":"添加用户并登录成功!","token":"XXXXXXXXXXXXXXXXXXXXXXXXXX","data":{"username":"登录用户名","password":"密码","is_admin":true,"full_name":"昵称","position":"你的职位","address":"你的地址","motto":"你的心情","personal_state":"你的自我-introduction","img_url":"http://你的头像地址","_id":"用户_id","login_info":[{"login_time":"登录时间","login_ip":"登录ip","_id":"_id"}//本账号的登录记录]}}login(使用上面注册的用户名和密码)7.有什么问题可以提交issue或者在我的博客留言或者发邮件给我以供参考。Vue2.0文档WebPack中文文档MongooseAPI参考手册按4.xAPI手册EchartsMarkdown转码工具代码高亮工具...