Utilice vue2.0+element-ui+node.js+mongodb para crear un sistema de blogs de espacio completo, imitando el espacio QQ, con módulos como conversación, blog, álbum de fotos, mensajes y amigos.
Dirección en línea: https://auven.github.io/pandazone/
Si no conoce node.js y mongoDB, puede leer las notas de estudio de nodejs+express+mongodb para comenzar.
$ npm install# Si el comando anterior tarda en instalarse, puede usar el siguiente comando $ npm install --registry=https://registry.npm.taobao.org
Nota: El entorno de desarrollo utiliza datos reales y es necesario instalar MongoDB.
Primero debe abrir la base de datos MongoDB. En cuanto a cómo usar MongoDB, no explicaré mucho aquí.
# Instalar dependencias npm install # Inicializar la tabla de ciudades, utilizada para registrar la fuente de datos de la ciudad de la página npm run initCitys # Iniciar el servidor y ejecutarlo en localhost:8080npm run dev
El enrutamiento vue del entorno de desarrollo utiliza el modo historial.
En un entorno de producción, se utilizan datos simulados. Si desea reemplazar datos reales, modifique BASE_API
en config/prod.env.js
.
# 打包压缩代码
npm run build
# 预览网页
node server/prod.server.js
El enrutamiento vue del entorno de producción utiliza el modo hash.
Este proyecto es mi proyecto de graduación. He implementado este sitio web usando PHP antes, pero como estoy aprendiendo Vue recientemente, usé Vue para este proyecto.
Tecnologías involucradas: vue2.0, express, node.js+mongodb, usando element, PhotoSwipe, Baidu ueditor y otros complementos.
│ .babelrc │ .editorconfig │ .eslintignore │ .eslintrc.js │ .gitignore │ .postcssrc.js │ .travis.yml │ index.html │ package.json │ README.md │ ├─build // webpack配置文件 │ build.js │ check-versions.js │ dev-client.js │ dev-server.js │ initCitys.js │ utils.js │ vue-loader.conf.js │ webpack.base.conf.js │ webpack.dev.conf.js │ webpack.prod.conf.js │ webpack.test.conf.js │ ├─config // webpack配置文件 │ dev.env.js │ index.js │ prod.env.js │ test.env.js │ ├─dist // build之后的目录 │ ├─server // express服务器相关代码 │ │ prod.server.js │ │ settings.js │ │ │ ├─models // mongoose模块(与MongoDB进行数据交互) │ │ Album.js │ │ Blog.js │ │ BlogGroup.js │ │ db.js │ │ dbs.js │ │ Log.js │ │ md5.js │ │ Mood.js │ │ User.js │ │ │ ├─router // 服务器路由配置 │ │ router.js │ │ │ └─upload // 图片上传目录 │ ├─album // 相册 │ │ │ ├─avatar // 头像 │ │ │ ├─moodImg // 说说配图 │ │ │ └─temp // 临时上传文件 ├─src // vue项目源文件 │ │ App.vue │ │ main.js // 入口文件 │ │ │ ├─common // 公共 │ │ ├─fonts │ │ │ pandazone.eot │ │ │ pandazone.svg │ │ │ pandazone.ttf │ │ │ pandazone.woff │ │ │ │ │ └─stylus │ │ base.styl │ │ icon.styl │ │ index.styl │ │ mixin.styl │ │ │ ├─components // 组件 │ │ ├─404 │ │ │ 404.png │ │ │ 404.vue │ │ │ 404_msg.png │ │ │ 404_to_index.png │ │ │ error_bg.jpg │ │ │ error_cloud.png │ │ │ │ │ ├─album │ │ │ album.vue │ │ │ │ │ ├─albumDetail │ │ │ albumDetail.vue │ │ │ │ │ ├─blog │ │ │ blog.vue │ │ │ │ │ ├─blogDetail │ │ │ blogDetail.vue │ │ │ │ │ ├─blogModify │ │ │ blogModify.vue │ │ │ │ │ ├─footer │ │ │ footer.vue │ │ │ WechatIMG2.jpeg │ │ │ │ │ ├─friends │ │ │ friends.vue │ │ │ │ │ ├─header │ │ │ header.vue │ │ │ │ │ ├─home │ │ │ home.vue │ │ │ │ │ ├─index │ │ │ index.vue │ │ │ │ │ ├─login │ │ │ login.vue │ │ │ │ │ ├─message │ │ │ message.vue │ │ │ │ │ ├─mood │ │ │ mood.vue │ │ │ │ │ ├─newBlog │ │ │ newBlog.vue │ │ │ │ │ ├─newMood │ │ │ newMood.vue │ │ │ │ │ ├─profile │ │ │ profile.vue │ │ │ │ │ ├─register │ │ │ register.vue │ │ │ │ │ ├─status │ │ │ status.vue │ │ │ │ │ ├─uploadImg │ │ │ uploadImg.vue │ │ │ │ │ ├─userIndex │ │ │ userIndex.vue │ │ │ │ │ └─vueUeditor │ │ vueUeditor.vue │ │ │ └─router // vue-router │ index.js │ └─static // 静态资源文件 │ .gitkeep │ city.json │ ├─css │ normalize.css │ ├─images │ 72019_bg.jpg │ 72019_top.png │ moren.jpg │ ├─js │ └─PhotoSwipe │ └─ueditor1_4_3_3