- 前端:promise async ajax
- 后端:express cors mysql
1.安装:
1.快速创建package.json文件
npm init -y
2.安装express
npm install express
3.解决接口跨域问题
npm install cors
首先需要有一个数据库
创建express服务器 并且链接数据库
// 创建express框架 并链接数据库
const express = require('express')
const cors=require('cors')
const mysql=require('mysql')
const app=express()
app.listen(80,()=>{
console.log('服务器已启动');
})
// 解决跨域问题
app.use(cors())
// 创建一个MySQL连接池
const db=mysql.createPool({
host:'127.0.0.1',
user:'root',
password:'12345678',
database:'my-db-01',
timezone:'08:00'
})
// 检查是否链接成功
db.query('SELECT * FROM new_table;',(err,result)=>{
if(err) return console.log(err.message);
console.log(result);
})
链接成功后挂载路由
// 挂载路由
// 写完一个接口
app.get('/getuser', (req, res) => {
db.query('select * from new_table;', (err, results) => {
if (err) {
var result = {
error: '失败',
message: '获取数据库时发生错误'
}
res.send(JSON.stringify(result))
} else {
res.send(JSON.stringify(results))
}
})
})
然后运行服务器 node ./app.js
前端获取数据 方法1:使用Promise封装一个Ajax
var btn = document.querySelector('button')
// 封装Ajax请求
// 封装Promise
function getdata (methods, path) {
return new Promise((reslove, reject) => {
var xhr = new XMLHttpRequest()
xhr.open(methods, `http://127.0.0.1:80${path}`)
xhr.send()
xhr.onreadystatechange = () => {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
// 将数据转化为json对象
const text = JSON.parse(xhr.responseText)
reslove(text)
}
}
}
})
}
btn.addEventListener('click', async function () {
const arr = await getdata('get', '/getuser')
console.log(arr);
})
点击按钮 获取数据
数据已经成功获取到页面上了
前端获取数据方法2:使用axios获取数据:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
axios.get('http://127.0.0.1:80/getuser').then((res)=>{
console.log(res.data);
})