【原生js案例】前端封装ajax请求及node连接 MySQL获取真实数据

ops/2024/12/21 11:26:05/

上篇文章,我们封装了ajax方法来请求后端数据,这篇文章将介绍如何使用 Node.js 来连接 MySQL,并对数据库进行操作。

实现效果

代码实现

  • 后端接口处理
const express = require("express");
const connection = require("../data/index");
const router = express.Router();
const { proxy } = require("../utils");
const names = ["张三", "李四", "王五", "赵六"];router.get("/", (req, res) => {res.send("Hello World!");
});router.post("/form", (req, res) => {const { name, pwd } = req.body;if (names.includes(name)) {return res.json({code: 1,data: {name: "该用户名已经注册啦",pwd: "",},});} else {return res.json({code: 0,data: {name: "可以注册啦",pwd: "",},});}connection.end();
});router.get("/song-list", async (req, res) => {const sql = "select * from music_list";try {const data = await proxy(connection, sql);return res.json({ code: 0, data });} catch (error) {return res.json({ code: 1, msg: "获取数据失败" });}connection.end();
});
module.exports = router;
  • mysql连接初始化
var mysql = require("mysql");
var connection = mysql.createConnection({host: "localhost",user: "root",password: "123456",database: "songdata",
});module.exports = connection;

nodemysql的查询是使用的函数回调,这样就把我们的查询数据业务和对数据操作的业务耦合在一起了,我们封装这个方法,进行查询操作和数据处理的解耦

function proxy(connection, sql) {return new Promise((resolve, reject) => {connection.query(sql, (err, results) => {console.log("🚀 ~ connection.query ~ results:", results);if (err) {// console.log("🚀 ~ router.post ~ err", err);reject(err);} else {resolve(results);}});});
}module.exports = { proxy };
  • 在首页增补上
// 链接数据库
const connection = require("./data/index");
connection.connect();

mysql数据库

  • 温馨提示:最好是使用可视化工具来查看,工具很多,大家可以自行去找适合自己的工具

在这里插入图片描述
这样我们,就实现了前端通过ajax请求后端真实数据库的操作


http://www.ppmy.cn/ops/143747.html

相关文章

思科CCNA认证都学什么考什么?

关注 工 仲 好:IT运维大本营CCNA考试要学的东西很多,你不要看它只是一个初级认证,但是它的专业内容知识是不少的,你想要学好也是需要下一番苦功的。 那么考CCNA需要学哪些东西呢?下面我们就来了解一下吧。 01、考CCN…

JS子页面调用父页面函数,监听刷新事件

目录 1.子页面调用父页面的函数 2.监听刷新事件 1.子页面调用父页面的函数 我们先来说说什么是子页面,在我这里子页面就是域名一样,然后使用iframe引入的页面就是我所说的子页面 我们可以通过这个方法来调用父页面的函数 window.parent 后面写上一…

Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集BIM介绍基本原理算法流程特点应用场景 BIM代码实现BIM算法实现攻击效果 代码汇总bim.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexNet对CIFAR1…

R-CNN算法详解及代码复现

算法背景 在目标检测领域的发展历程中,RCNN算法的出现标志着一个重要里程碑。在RCNN问世之前,研究人员已经探索了多种目标检测方法,为后续突破奠定了基础: 滑动窗口 :一种早期常用的技术,通过在图像上移动不同大小的窗口来检测潜在目标。 选择性搜索 :一种更先进的候选区…

docling:PDF解析

目录 环境部署部署问题 用法转换单个文档 解析效果 环境部署 下载 git clone https://gitclone.com/github.com/DS4SD/docling.git conda create -n docling python3.11 conda activate docling pip install docling安装模型 git clone https://www.modelscope.cn/AI-ModelS…

基于Python3编写的Golang程序多平台交叉编译自动化脚本

import argparse import os import shutil import sys from shutil import copy2from loguru import loggerclass GoBuild:"""一个用于构建跨平台执行文件的类。初始化函数,设置构建的主文件、生成的执行文件名称以及目标平台。:param f: 需要构建的…

整点(枚举)

Hello!大家好!我是学霸小羊,今天分享一道c枚举题: 题目描述 在二维坐标系, 有一个圆,圆心在(0,0),圆的半径是r。问圆内有多少个整点(所谓的整点就是横坐标和纵坐标都是整数的点)。若点P的横坐标是整数a&a…

2025.01.15python商业数据分析top3

import pandas as pd# 文件路径为python文件位置下的相对路径 dwx pd.read_excel("电蚊香套装市场近三年交易额.xlsx", ) fmfz pd.read_excel("防霉防蛀片市场近三年交易额.xlsx") msmc pd.read_excel("灭鼠杀虫剂市场近三年交易额.xlsx") mz…