Nodejs + Navicat 15 + MySQL + jquery 搭建后端服务器并在前端请求

1.Navicat 新建 MySql连接 报错

 这是因为MySql没有启动,启动成功后 新建连接

2.新建数据库

3.新建表

 4.设计字段

5.添加数据

6.nodejs 连接数据库并编写接口

const express = require('express');
const app = express();
const Tool = require('./tool');
const mysql = require('mysql');
// select 选择数据库的名称
const sql = 'select * from lazydata';
// 编写后端数据接口、监听接口
app.get('/home', (req, res) => {
    res.header('Access-Control-Allow-Origin', '*'); // 解决跨域问题
    // 连接mysql 客户端每次请求接口时 都会重新去数据库读取数据
    const connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'a4211542',
        database: 'lazyimage',
    });
    connection.connect();
    connection.query(sql, [], function (err, result) {
        // if (err) throw err;
        if (err) res.json({ status: 500, data: [] });
        // 第一步 拿到get请求参数
        let params = req.query;
        let dataArr = result;
        // 拿到数据 根据分页的参数 返回对应页数的数据
        // 待会前端传过来的 参数
        let resArr = Tool.getTableData(Number(params.page), 10, dataArr);
        resArr.status
            ? res.json({ status: 200, data: resArr.data })
            : res.json({ status: 202, data: [] });
    });
    connection.end();
});

// use是express注册中间件的方法,它返回一个函数。
// 静态资源托管  把public文件夹下的资源,托管到/static路径上  http://localhost:221/static/img/1.png 可以获取public下img中的1.png图片
app.use('/static', express.static('public'));


// 监听端口
app.listen(221, () => {
    console.log('监听221端口成功');    
});

7.前端请求

getImgList = (size) => {
  return new Promise((resolve,reject)=>{
  $.ajax({
      type: 'get',
      url: `http://localhost:221/home?page=${size}`,
      dataType: 'json',
      success: function (res) {
        resolve(res)
      },
      error: function (err) {
          console.log(
              '%c让我康康 err',
              'border-radius:3px;background:#000;color:#f6e387;padding: 2px 5px',
              err
          );
          reject(err)
          alert('请求失败!');
      },
  });
  })
}

请求结果

原文地址:https://www.cnblogs.com/it-Ren/p/14614544.html