# practice **Repository Path**: jibing0913/practice2 ## Basic Information - **Project Name**: practice - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-04-19 - **Last Updated**: 2022-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 全栈项目的后端 - **M**ongoDB : Document database – used by your back-end application to store its data as JSON (JavaScript Object Notation) documents - **E**xpress (sometimes referred to as Express.js): Back-end web application framework running on top of Node.js - **N**ode.js : JavaScript runtime environment – lets you implement your application back-end in JavaScript ## 项目安装与使用 ```bash git clone https://github.com/noyota/men-vue.git cd men-vue cp .env.example .env yarn yarn start (for development) ``` 前端开启 ```bash yarn serve ``` ### Pre-requisites * git - [Installation guide](https://www.linode.com/docs/development/version-control/how-to-install-git-on-linux-mac-and-windows/) . * node.js - [Download page](https://nodejs.org/en/download/) . * npm - comes with node or download yarn - [Download page](https://yarnpkg.com/lang/en/docs/install) . * mongodb - [Download page](https://www.mongodb.com/download-center/community) . ### 插件说明 + 中间件 写在服务端,在你的功能代码执行之前所执行的插件,已app.use()添加的,就是全局中间件,在路由上添加的就是单个中间件 + 模块 实现某些功能的插件,需要在你的功能里主动调用 + 框架 项目的基础 #### 产品插件(服务端) + bcrypt 加密模块 用于密码加密 + body-parser url请求 内容解析中间件 + compression 文件压缩中间件 gzip 用于服务器和客户端间请求大文件的压缩 大文件压缩成更小的体积更快速到达客户端 + cookie-parser cookie解析中间件 + cors 跨域中间件 用于服务端处理一些跨区请求的权限 + dotenv 可以使nodejs从文件加载环境变量 + express nodejs服务端框架 + [express-async-handler](https://www.npmjs.com/package/express-async-handler) 一个异步路由异常处理中间件,用于处理异步快速路由中的异常并将它们传递给express统一错误处理 你可以用他包裹你的异步路由 + express-jwt JWT令牌的验证中间件 + [express-validation](https://github.com/andrewkeig/express-validation) 一个验证中间件,结合Joi使用可以在功能代码执行前验证body, params, query, headers and cookies中客户端传递的数据是否符合规格,不符合会直接跳转到express的错误处理 + [formidable](https://segmentfault.com/a/1190000011424511) 一个表单提交的处理插件 可以解析表单数据和表单里上传的文件 + helmet 帮助你设置你的HTTP头的中间件,可以免受一些攻击 ,集成了很多设置头的中间件,使用默认就可以。 + [http-errors](https://www.npmjs.com/package/http-errors) 帮你创建一个错误的http反馈的插件 + [joi](https://github.com/hapijs/joi) 验证插件,有一套非常详细的各自数据的验证方法。可惜错误验证的反馈默认是英文的,没有国际化 + jsonwebtoken JWT令牌的生成器 + method-override + mongoose 数据库ORM框架 + morgan + nodemon 服务端使用这个插件替换node启动可以实时监控代码更改,并刷新服务 "passport": "^0.4.0", "passport-jwt": "^4.0.0", "passport-local": "^1.0.0", #### 产品插件(客户端) + axios + clipboard + codemirror + driver.js + dropzone + echarts 前端图表框架 + element-ui vue前端界面UI框架 + file-saver + form-create + fuse.js + js-cookie + jsonlint + normalize.css 前端保持各浏览器显示css一致性的插件 #### 开发依赖 "@babel/core": "7.0.0", "@babel/register": "7.0.0", "@types/jasmine": "~2.8.3", "@types/jasminewd2": "~2.0.2", + @types/node 这个包包含了node的类型定义,全局值定义 "@vue/cli-plugin-babel": "3.5.0", "@vue/cli-plugin-unit-jest": "3.5.0", "@vue/cli-service": "3.5.0", "@vue/test-utils": "1.0.0-beta.29", "babel-core": "7.0.0-bridge.0", "babel-eslint": "10.0.1", "babel-jest": "23.6.0", "babel-plugin-component": "^1.1.1", "chalk": "2.4.2", "codelyzer": "4.3.0", "concurrently": "^3.5.1", "connect": "3.6.6", "eslint": "5.15.1", "eslint-plugin-vue": "5.2.2", "husky": "1.3.1", "jasmine-core": "~3.1.0", "jasmine-spec-reporter": "~4.2.1", "karma": "^3.1.3", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "2.0.1", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "1.1.0", "lint-staged": "7.2.2", "mockjs": "1.0.1-beta3", "node-sass": "^4.9.0", "protractor": "^5.4.1", "runjs": "^4.3.2", "sass-loader": "^7.1.0", "script-ext-html-webpack-plugin": "2.1.3", "script-loader": "0.7.2", "serve-static": "^1.13.2", "svg-sprite-loader": "4.1.3", "svgo": "1.2.0", "vue-template-compiler": "2.6.8" ## 开发下前端启动 [官方文档](https://cli.vuejs.org/zh/guide/cli-service.html#vue-cli-service-build) vue-cli-service serve 命令会启动一个开发服务器 (基于 webpack-dev-server) 并附带开箱即用的模块热重载 (Hot-Module-Replacement)。 使用 vue.config.js 里的 devServer 字段配置开发服务器。 ## 项目多余代码缩减 由于这个项目中包含了部分示例代码。已此项目为基础开发新项目时,可以删除示例代码部分,使得项目更小 文件夹删除 mock src/mock src/views/form src/views/permission src/views/table src/views/tree 文件删除 src/api/article.js src/api/remoteSearch.js src/api/table.js src/api/role.js src/views/dashboard/admin/components/TransactionTable.vue 同时删除src/views/dashboard/admin/index.vue中TransactionTable的引用 同时删除vue.config.js文件中mock的引用 54-57行