vue2 vuex 多人博客系统

多人博客系统

断断续续写了个单页面的博客系统,其实是想给我和我的小伙伴写日记用的,租了do服务器,express写接口,用nginx反向代理,也算是练练手。不得不说国外的服务器还是做单页面更好

vue前台部分

前台依赖模块

vue-cli
vue-router
vuex
axios
moment-timezone
vue-waterfall
wangeditor

功能模块

  • canvas粒子效果

  • 登录/注册

  • 个人中心

  • 添加文章

  • 编辑文章

  • 搜索文章

  • 下拉加载列表

  • 文章留言

  • H5多图上传

  • 缩略图生成

  • 图片瀑布流布局

路由配置

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter);

import store from '../store/index'

import index from '../page/index'
import dairy from '../page/dairy'
import photo from '../page/photo'
import login from '../page/login'
import reg from '../page/reg'
import user from '../page/user'
import set from '../page/set'
import page from '../page/page'
import article from '../page/article'
import edit from '../page/edit'

import userIndex from '../components/user/index'
import userAlbum from '../components/user/album'
import userTogether from '../components/user/together'
import userInfo from '../components/user/info'
import setIndex from '../components/set/index'
import setFriend from '../components/set/friend'
import setPassword from '../components/set/password'

const routes = [{
    path: '/',
    component: index,
    meta: { auth: false }
}, {
    path: '/dairy',
    component: dairy,
    meta: { auth: false }
}, {
    path: '/photo',
    component: photo,
    meta: { auth: false }
}, {
    path: '/login',
    component: login,
},{
    path: '/reg',
    component: reg,
    meta: { auth: false }
},{
    path: '/article',
    component: article,
},{
    path: '/p/:aid',
    name: 'page',
    component: page,
    meta: { auth: false }
},{
    path: '/p/:aid/edit',
    name: 'edit',
    component: edit,
},{
    path : '/set',
    component : set,
    children : [{
        path: '',
        name: 'setIndex',
        component : setIndex,
    },{
        path : 'password',
        name: 'setPassword',
        component : setPassword,
    },{
        path : 'friend',
        name: 'setFriend',
        component : setFriend,
    }]
}, {
    path: '/u/:uid',
    component: user,
    children: [{
        path: '',
        name: 'userIndex',
        component: userIndex,
        meta: { auth: false }
    }, {
        path: 'album',
        name: 'userAlbum',
        component: userAlbum,
        meta: { auth: false }
    }, {
        path: 'together',
        name: 'userTogether',
        component: userTogether,
        meta: { auth: false }
    }, {
        path: 'info',
        name: 'userInfo',
        component: userInfo,
        meta: { auth: false }
    }]
}];

const router = new VueRouter({
    mode: 'history',
    saveScrollPosition: true,
    routes
});

router.beforeEach(({meta, path}, from, next) => {
    var { auth = true } = meta;
    var isLogin = Boolean(store.state.auth.token); //true用户已登录, false用户未登录

    if (auth && !isLogin && path !== '/login') {
        return next({ path: '/login' })
    }
    if(isLogin && (path == '/login' || path == '/reg')){
        return next({ path: '/' })
    }
    next()
});

export default router;

前台运行程序

npm install
npm run dev
http://localhost:8080/

api后台部分

后台依赖模块

express
mongoose
bluebird
jsonwebtoken
gm            需安装ImageMagick

后台文件目录

│─ config
│    └─    index.js
│─ models
│    ├─    album.model.js
│    ├─    article.model.js
│    ├─    comment.model.js
│    └─    user.model.js
├─ public/uploads
├─ routes
│    ├─    album
│    │        ├─    album.controller.js
│    │        └─    index.js
│    ├─    article
│    │        ├─    article.controller.js
│    │        └─    index.js
│    ├─    auth
│    │        ├─    local
│    │        │        ├─    index.js
│    │        │        └─    passport.js
│    │        ├─    auth.service.js
│    │        └─    index.js
│    ├─    comment
│    │        ├─    comment.controller.js
│    │        └─    index.js
│    ├─    user
│    │        ├─    user.controller.js
│    │        └─    index.js
│    └─    index.js
├─ app.js             
└─ package.json     

后台运行程序

npm install
开启mongodb
mongod --dbpath
node app

源码地址

前台界面
后台api
在线地址

clipboard.png

LxBlog 多用户博客个人主页系统,一套基于php+mysql 数据库平台架构的多用户博客系统,该系统融合了Blog的最新元素,拥有强大的个人主页系统,独立的二级域名功能,灵活的用户模版系统,丰富的朋友圈和个性相册功能。 部分修正改进功能 1.改进个人页面的日志列表页的摘要 2.改进相册个人后台发表方式 3.改进音乐前台列表页为显示歌曲列表,点击试听后弹出播放窗口,取消音乐上传 4.改进个人首页中显示所加入朋友圈的更新信息功能  5.改进最新推送的文章在朋友圈的其他圈友中显示功能  6.改进日志同时推送到多个朋友圈的支持功能 7.改进朋友圈系统页列表、会员排行列表 8.改进朋友圈系统页 9.改进圈主推荐文章列表 10.改进写朋友圈写文章功能,即在圈子中加入"写文章"功能,转入个人后台编写,写文章后默认推送到该圈子 11.改进朋友圈邀请功能 12.改进头像大小控制 13.改进书签功能 部分新增功能: 1.增加日志、评论、留言表情 2.增加验证问题 3.增加在article.php页面中和该文章tag相关的文章 4.增加tags广告词锁定 5.增加列表页"隐藏日志","好友可见日志" 链接. 6.增加心情,天气在发表日志页 7.增加"上一篇","下一篇",在文章阅读页 8.增加"转移个人分类"功能,在个人后台日志列表页 9.增加日志管理的搜索功能 10.增加附件批量上传 11.增加文件和商品集成格式在日志发布过程中 12.增加相册前台图片列表页,单个图片显示页面 13.增加相册个人页面单图显示页面功能,增加图片播放器 14.增加短消息功能 15.增加系统首页博客文章、人数、今日文章数、评论数量的显示 16.增加最新博客内容在论坛首页的显示 17.增加个人分类在论坛推送到blog的文章 18.增加推送设定,即当博客向论坛推送时,管理员可以设置只允许推送至哪个或者哪些版块 19.增加随机访问列表 20.增加好友日志更新列表,在个人日志页面 21.增加可视化风格编辑 22.增加论坛文集 23.增加找回密码功能 24.增加好友分类 25.增加摘要分界符 26.增加自定义关键字链接 27.增加博主回复评论 28.增加转载功能
支持二级域名功能,让您拥有属于自己的域名 注册用户可以免费获得以用户名开头的二级域名 使用个人二级域名可以直接访问博客个人主页 使用论坛整合接口,让博客论坛容为一体 在论坛里可以设置用户组权限,让特定的用户组有权限使用博客个人主页系统 用户在论坛里浏览自己的主题时可选择将帖子推送到自己的博客主页中去 在博客用户控制版面里,用户可以使用帖子推送功能,将自己在论坛里发表的优秀文章收藏到自己的博客主页中 实现与论坛数据整合 如果您已经拥有一个论坛帐号或注册了一个论坛帐号,无须再次注册即可登陆博客系统 如果您在博客系统中注册一个博客帐号,无须再次注册即可登陆论系统 功能强大的个人主页系统 拥有二级域名,个人日志,相册系统,播放音乐,放置flash特效等功能 搜索功能 强大博客的搜索功能,让您快速的寻找您要查看的博客和文章 轻松架设博客门户站点 提供便捷的内容调用功能,内容丰富的站点首页和分类页面,文章分类浏览功能 可访问个人主页内容,分享他人的博客主页 朋友圈功能 创建一个朋友圈,邀请几个知心朋友,谈天说地,享受网络交流的便捷 可自定义编辑的用户模版系统 功能强大的用户风格定制功能,用户可以通过简单的后台操作制作出多种多样的风格,新的风格定制功能为每个模块提供了背景颜色,背景图片,字体颜色,字体大小,边框样式等属性设置,您还可以为你的博客主页设置个人化的头部logo,所有图片(背景图片,头部logo等)可以选择系统提供的图片或使用自定义图片 论坛文章推送功能 管理自己的发表的文章,可以将优秀的文章加入到自己的博客主页中,永久收藏 您也可以在浏览主题的时候选择将主题推送到您的博客主页中 个人相册系统 支持多相册功能,可将您的相片分类收藏,方便查询和浏览,支持相片上传和使用URL地址两种方式保存相片 统计被博客查看次数 记录博客被查看次数,让您了解您的博客受人关注程度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值