VueExpressmysqlmongodbVue全家桶架构

5次阅读

共计 2216 个字符,预计需要花费 6 分钟才能阅读完成。

项目目录:

tips: 序号对应代码参考

|-- build
|-- config
|-- server    //express 后端
        |-- api    // 接受请求的 API
        |-- data    // 如果用的 mongodb 可以存放 json data 文件
            |-- data.json
        |-- db.js    //mongo 或者 sql 配置文件 (1)
        |-- index.js    //express 主要配置文件 (2)
        |-- mysqlDB.sql    //mysql 导出文件
        |-- sqlMap.js    //sqlmap,mysql 执行语句 (3)
|-- src
    |-- api    // 前端发起请求 api 文件
        |-- get.js 
        |-- post.js 
    |-- assets    // 静态资源文件
        |-- css.js
        |-- js.js
        |-- img.js
    |-- components // 组件
    |-- icons    //icon 图标
    |-- router    // 前端路由
        |-- index.js
    |-- store    //vuex 状态
        |-- modules
            |-- user.js
        |-- getters.js
        |-- index.js
    |-- utils    // 工具文件
        |-- request.js
        |-- date.js
    |-- views    // 前端主要显示.vue 文件
    |-- App.vue
    |-- 
|-- static
    |-- css
    |-- icon
    |-- img
    |-- js
|-- test
|-- index.html
|-- package.json

代码参考

(1):db.js 代码参考,mysql:

module.exports = {
    mysql: {
        host:'localhost',
    port:'3306',
    user:'LV',
    password:'123123',
    database:'LVShop',
    charset : 'utf8mb4'
    }
} 

(2):index.js 代码参考:

let express = require('express');
let app = express();
let bodyParser = require('body-parser');
var mysql = require('mysql');
const db = require('./db.js')

//============  GET POST API ===============//
const mCustomerAPI = require("./api/manage/customer")

//============  GET POST API ===============//

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));

app.use(function (req, res, next){if (req.url === 'your_alipay_notify_url') {req.headers['content-type'] = 'application/x-www-form-urlencoded';
    }
    next();});

// 断开连接后自动连接函数
function handleError (err) {if (err) {
      // 如果是连接断开,自动重新连接
      if (err.code === 'PROTOCOL_CONNECTION_LOST') {connect();
      } else {console.error(err.stack || err);
      }
    }
}
// 数据库连接
function connect () {var conn = mysql.createConnection(db.mysql);
  conn.connect(handleError);
  conn.on('error',handleError);
}
connect();
// 监听端口
let prot = 3002;
app.listen(prot,function(){   // 监听 3002 端口
    console.log("Server running at"+prot+"port.........");
});

app.use(function(req,res,next){
    // 只允许 8080 访问
     res.header('Access-Control-Allow-Origin','*');
    // 服务允许客户端发的方法
    res.header('Access-Control-Allow-Methods','GET,POST,DELETE,PUT,OPTIONS');
    // 服务器允许的请求头
    res.header('Access-Control-Allow-Headers','Content-Type,Accept,Authorization');
    // 跨域携带 cookie  允许客户端把 cookie 发过来
    res.header('Access-Control-Allow-Credentials','true');
    // 如果请求的方法是 OPTIONS, 那么意味着客户端只要响应头,直接结束响应即可
    if(req.method == 'OPTIONS'){res.end();
    }else{next();
    }
});

// 请求接口
app.use(mCustomerAPI)

(3):sqlMap.js// sql 语句

var sqlMap = {   
        customer:{add:'insert into `customer`(`username`,`password`,`telephone`,`permission`) values(?,?,?,?)'}
     }
     

正文完
 0