我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js+Express+Vue+MySQL+axios的项目搭建全过程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js+Express+Vue+MySQL+axios的项目搭建全过程

1 基本搭建

创建vue项目之前需要先安装Node.js和MySQL数据库

1.1 vue脚手架安装

npm i vue -g
npm i @vue/cli -g

//初始化vue项目
vue create 项目名

1.2 在创建好的项目中创建server文件夹

在文件夹内创建这几个文件:

新建api文件夹、db.js、index.js、sqlMap.js。(api文件存放相关api接口路径及方法,db.js配置相关数据库,index.js配置后端端口及api路由)

index.js

const userApi = require('./api/userApi');
const fs = require('fs');
const path = require('path');
const bodyParser = require('body-parser');
const express = require('express');
const app = express();

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

// 后端api路由
app.use('/api/user', userApi);

// 监听端口
app.listen(3000);
console.log('success listen at port:3000......');

db.js

//数据库配置信息 并进行导出
module.exports ={
  mysql:{
    host: 'localhost',
    user: 'root',
    password: '123456',
    database: 'h5',
    port: '3306'
  }
}

sqlMap.js

var sqlMap = {
  // 用户
  user: {
    add: 'insert into user(name,age) values(?,?)',
	update:'....'
  },
  //商品
  goods:{
	  add:'insert into goods(name,desc,price,num) value(?,?,?,?)'
  },
  //订单
  orders:{
	  ....
  }
}
module.exports = sqlMap;

userApi.js

//引入express,调用路由模块
var express = require('express');
var router = express.Router();

//引入mysql,mysql配置文件
var models = require('../db');
var mysql = require('mysql');
var $sql = require('../sqlMap');

// 连接数据库
var conn = mysql.createConnection(models.mysql);

conn.connect();
var jsonWrite = function(res, ret) {
  if(typeof ret === 'undefined') {
    res.json({
      code: '1',
      msg: '操作失败'
    });
  } else {
    res.json(ret);
  }
};

// 增加用户接口  完整进入该post的路径问index.js里面配置的路由加上该post的路径
//   '/api/user/addUser'
router.post('/addUser', (req, res) => {
  let sql = $sql.user.add;
  let params = req.body;
  console.log(params);
  conn.query(sql, [params.name, params.pass], function(err, result) {
    if (err) {
      console.log("添加失败"+err);
    }
    if (result) {
      jsonWrite(res, result);
    }
  })
});

module.exports = router;

1.3 编写前端界面

在class="lazy" data-src的views目录下建一个前端界面

<template>
  <div class="home">
	<form action="http://localhost:3000/api/user/addUser" method="post">
		user:<input type="text" name="name" /><br>
		pass:<input type="password" name="pass" /><br>
		<input type="submit"/>
	</form>
	
	<button type="button" @click="addUser">post添加用户</button>
  </div>
</template>

<script>

export default {
  name: 'Home',
  methods:{
	  addUser(){
		// console.log(111)
		//发起ajax请求
		//使用axios请求
	  }
  }
}
</script>

1.4 启动服务测试

此时我们还没有安装mysql模块

npm i mysql --save

同时启动前端和后端的服务

输入数据测试:

数据插入成功!

这里需要注意一点:

前端界面表单中的name要和数据库中的字段一致,不然数据不能插入数据库而显示为NULL

2 axios的使用

axios安装和使用

安装axios

npm i --save axios

在vue项目中的main.js中引入axios

// 引入axios
import axios from 'axios'

//全局注册axios
Vue.prototype.$axios=axios
<template>
  <div class="home">
	<form action="http://localhost:3000/api/user/addUser" method="post">
		user:<input type="text" name="name" /><br>
		pass:<input type="password" name="pass" /><br>
		<input type="submit"/>
	</form>
	
	<button type="button" @click="selectUser">post添加用户</button>
  </div>
</template>

<script>

export default {
  name: 'Home',
  methods:{
	  selectUser(){
		// console.log(111)
		//发起ajax请求
		//使用axios请求
		// console.log(this.$axios)
		this.$axios({
			url:'http://localhost:3000/api/user/',//请求的url地址
			method:'post',
			data:{
				name:'胡桃',
			},
		}).then(function(data){
			console.log(data)
		}).catch(function(err){
			console.log(err)
		})
	  }
  }
}
</script>

测试报错,因为Node后端和vue端端口不一致,需要跨域

配置proxy进行跨域请求

vue根目录找到vue.config.js,如果没有就手动创建一个

module.exports={
	devServer:{
		proxy:{//配置跨域
			'/api':{
				target:'http://localhost:3000/',//这里填写真实的后台接口
				changeOrigin:true,//允许跨域
				pathRewrite:{
				
					'^/api':'/'
				}
			}
		}
	}
}

userApi.js中新增一个post

router.post('/selectUser', (req, res) => {
  console.log(req.body);
});
<template>
  <div class="home">
	<form action="http://localhost:3000/api/user/addUser" method="post">
		user:<input type="text" name="name" /><br>
		pass:<input type="password" name="pass" /><br>
		<input type="submit"/>
	</form>
	
	<button type="button" @click="selectUser">post添加用户</button>
  </div>
</template>

<script>

export default {
  name: 'Home',
  methods:{
	  selectUser(){
		// console.log(111)
		//发起ajax请求
		//使用axios请求
		// console.log(this.$axios)
		this.$axios({
			url:'/api/api/user/selectUser',//请求的url地址
			method:'post',
			data:{
				name:'胡桃',
			},
		}).then(function(data){
			console.log(data)
		}).catch(function(err){
			console.log(err)
		})
	  }
  }
}
</script>

重启前端和后端服务,点击按钮

查看后台控制台

跨域请求数据成功!

proxy写多个代理

module.exports={
	devServer:{
		proxy:{//配置跨域
			'/api/select':{
				target:'http://localhost:3000/',//这里填写真实的后台接口
				changeOrigin:true,//允许跨域
				pathRewrite:{
					'^/api/select':''
				}
			},
			'/api':{
				target:'http://localhost:3000/',//这里填写真实的后台接口
				changeOrigin:true,//允许跨域
				pathRewrite:{
				  // api代表网址是: http://localhost:3000/api/user
					'^/api':''
				}
			},
		}
	}
}

前端url路径写成哪个都可以跨域请求到数据

代码更改后需要充钱前端服务

简写代码:

同理,我们把第二个代理修改

但是这里测试请求失败,

我们做如下修改:

最终就可以测试成功了!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js+Express+Vue+MySQL+axios的项目搭建全过程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js+Express+Vue+MySQL+axios的项目搭建全过程

这篇文章主要介绍了Node.js+Express+Vue+MySQL+axios的项目搭建全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-08

vue + qiankun 项目搭建过程

这篇文章主要介绍了vue + qiankun 项目搭建,首先是通过cli3构建vue2项目,通过qiankun改造主应用,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-03-03

vue项目使用axios封装request请求的过程

这篇文章主要介绍了vue项目使用axios封装request请求,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-05-17

Python之Web框架Django项目搭建全过程

Python之Web框架Django项目搭建全过程IDE说明:Win7系统Python:3.5Django:1.10Pymysql:0.7.10Mysql:5.5注:可通过pip freeze查看已安装库版本信息。 Django 是由 Py
2022-06-04

django项目环境的搭建过程

本篇内容介绍了“django项目环境的搭建过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装环境:centos7.41 安装nginx
2023-06-02

python mysql项目实战及框架搭建过程

前言 python+mysql.connector,demo实战 框架搭建 说实话,其实没有使用到框架,只是用了, python+mysql.connector模块 首先在开始虚拟环境:(vega-j-vI5SDr) (vega) D:\t
2022-06-02

通过node-mysql搭建Windows+Node.js+MySQL环境的教程

前言 MySQL是一款常用的开源数据库产品,通常也是免费数据库的首选。查了一下NPM列表,发现Nodejs有13库可以访问MySQL,felixge/node-mysql似乎是最受关注项目,我也决定尝试用一下。 要注意名字,”felixge
2022-06-04

Vue3项目搭建的详细过程记录

使用VUE3开发很久了,但一直没进行总结和记录,忙里偷闲整理搭建一套VUE3项目脚手架,下面这篇文章主要给大家介绍了关于Vue3项目搭建的详细过程,需要的朋友可以参考下
2022-11-13

vite构建vue3项目的全过程记录

vite是VUE3创建项目的工具,项目大了之后,性能明显优于webpack,下面这篇文章主要给大家介绍了关于vite构建vue3项目的相关资料,需要的朋友可以参考下
2023-01-16

编程热搜

目录