vue express mysql_Vue2+Express+MySQL构建前后端分离项目

需要用到

前端:

Vue-cli 快速构建项目,开发前端页面

Vue-Resource 与后端交互

后端:

Node + Express 仅用于编写API给前端提供数据

MySQL 创建数据库

开始准备工作

安装Vue-Cli

http://www.jianshu.com/p/5c9b489d4103

之前已经写过关于Vue的安装,点击连接

直到npm run dev运行起来

vue2本身是基于nodeJs的,此时node也已经安装好了

Express 是基于 Node.js平台,快速、开放、极简的 web 开发框架,待会再安装相关依赖

搭建后端Express服务器

在根目录下创建server文件

1、db.js 数据库mysql连接配置

// 数据库连接配置

module.exports = {

mysql: {

host: 'localhost', //mysql地址127.0.0.1

user: 'root', //连接mysql的用户名和密码

password: '',

database: 'mycake', //数据库名

port: '3306', //mysql端口号

}

}

如果以上信息不太清楚,或者还未安装mysql,请参考

http://www.jianshu.com/p/023f3a758c05

2、index.js Express 服务器入口文件

// node 后端服务器

const cakeList = require('./api/cakeList');

const addUser= require('./api/addUser');

const express = require('express');

const app = express();

// 后端api路由

app.use('/api/cake', cakeList);

app.use('/api/user', addUser);

// 监听端口

app.listen(3000);

console.log('success listen at port:3000......');

3、创建api文件夹

cakeList.js 关于cake查询所有数据的api

var models = require('../db');

var express = require('express');

var router = express.Router();

var mysql = require('mysql');

// 连接数据库

var conn = mysql.createConnection(models.mysql);

conn.connect();

// 增加cakelist接口

router.get('/cakelist', (req, res) => {

var sql ="select * from cake";

conn.query(sql, (err, result)=>{

if (err) {

console.log(err);

}

if (result) {

console.log(result);

res.json(result);

}

})

});

module.exports = router;

4、安装express+mysql的依赖

在根目录下

npm install express mysql --save

注意:--save安装后并将其保存到依赖列表中,如果不保存依赖列表可以忽略不写,不写--save就是临时安装某个依赖

此时进入 server 文件夹下

执行 node index

看到 success listen at port:3000……即服务端启动成功。

编写前端vue

1、Hello.vue 页面

{{ msg }}

export default {

name: 'hello',

data () {

return {

msg: 'Welcome to Your Vue.js App'

}

},

created:function (){

this.$http.get('/api/cake/cakelist')

.then((response) => {

console.log(response.data);

})

}

}

2、安装vue-resource

vue-resource相当于jquery中的ajax

只有安装vue-resource,$http.get才能生效,不然就会报错

npm install vue-resource --save

在main.js中引入vue-resource

import VueResource from 'vue-resource'

Vue.use(VueResource)

来看一下完成后的目录结构

ccfec6f379c7

image.png

从图上可以看出,前后端是完全分离式开发

此时还不能运行,因为服务器在3000端口上,8081端口访问不到,这样运行就会报Not Found 404错误

配置跨域

config/index.js

proxyTable参数,用来设置地址映射表

dev: {

env: require('./dev.env'),

port: 8081,

autoOpenBrowser: true,

assetsSubDirectory: 'static',

assetsPublicPath: '/',

proxyTable: {

'/api': {

target: 'http://127.0.0.1:3000/api/',

changeOrigin: true,

pathRewrite: {

'^/api': ''

}

}

},

即请求/api时就代表‘http://localhost:3000/api/’,

注意:这里最好使用http://127.0.0.1,因为我写http://localhost也会报同样的错误

现在我们可以运行啦npm run dev,记住:之前的启动服务器千万不要关闭,再开一个终端运行

ccfec6f379c7

image.png

这是我的结果,说明连接后端成功啦,可以继续完成更多的api和页面啦

此项目地址:https://github.com/ortion/vue2mycake

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值