使用node.js连接数据库

91 阅读1分钟

  • 前端: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);
})