关于web前端通过js获取后端mysql数据库数据的一个方法

关于web前端通过js获取后端mysql数据库数据的一个方法

问题引入

关于html的教程很多,关于mysql的教程也很多,那么怎么让html展示mysql的数据呢?

一言以蔽之

前端通过js向后端发起一个http请求,后端响应这个请求并返回数据

实现

js代码

复制代码
   // 使用 fetch 发起 GET 请求
    fetch('http://127.0.0.1:3000/api/login', {
        method: 'POST',
        headers: {
            'Content-type': 'application/json'
        },
        body: JSON.stringify(data) //data是传递给后端的数据
    })
    .then(response => {
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        return response.json();
    })
    .then(data => {
        // 处理从服务器获取到的数据
        console.log(data);
        if(data.status == false){
            Error.innerHTML = "username not exists or password wrong";
        }
        else{
            alert("success!");
        }
    })
    .catch(error => {
        // 处理请求错误
        console.error('Error:', error);
    });

后端nodejs代码

复制代码
//登陆
app.post('/api/login', (req, res) => {
    const data = req.body;
    //这个pool是创建的mysql连接池,这里没展出来,不懂可以百度如何创建
    pool.query('select * from users where username = ?',[data.username], (error,results) => {
        if (error) {
            console.error('Error querying database:', error);
            res.status(500).send('Internal Server Error');
            return;
        }
        console.log(results);
        if(results.length == 0){
            res.json({status: false});
        }
        else{
            if(results[0].password != data.password){
                res.json({status: false});
            }
            else{
                res.json({status: true,id:results[0].id});
            }
        }
    })
});

逻辑解释

前端js使用fetch方法向后端发送一个http请求,请求里面可以携带一些数据,然后后端nodejs通过前端发来的http信息来访问服务端数据库响应请求,并返回数据给前端。

什么是nodejs?

你可以把它理解成一个运行在服务器端的脚本,负责响应请求,就像饭店的厨师,而js就像前台负责给顾客点菜的人

nodejs怎么运行?

这个网上教程很多,得现在服务器端安装一下node,npm啥的(好像是一起的)

说明

向后端发送请求的方法不止这一个,但是这个还算比较简洁

有什么问题可以直接私信我

相关推荐
缓慢更新4 分钟前
审批的加签与会签:多人意见怎么合
android·java·数据库·低代码·rxjava
变与不变8068 分钟前
jQuery细节以及使用应用场景
前端·javascript·jquery
跨境联盟43 分钟前
大健康实体如何搭建产品差异化:对比普通营养品与合规跨境膳食补充剂服务模式
数据库·ai·健康医疗·健康管理·精准营养
有想法的py工程师1 小时前
PostgreSQL EXPLAIN中的Cost模型分析(random_page_cost参数):优化器眼中的代价世界与执行计划生成
数据库·postgresql
前进的李工1 小时前
飞书企业知识库设计+后端高频八股
数据库·redis·后端·mysql·性能优化·飞书·rag
SailingCoder2 小时前
【封闭结束1】端到端交付:Agent 一次请求如何走完全链路
前端·安全·ai·面试·agent·harness
泡海椒2 小时前
JQuick-SQL CSV 文件数据接入:转换为内存表后再查询
数据库·sql
金銀銅鐵3 小时前
[Java] 展示增删元素时 LinkedList 的内部变化
java·后端·ai编程
为思念酝酿的痛3 小时前
MySQL数据类型
数据库·mysql
武子康4 小时前
Vercel Cache Reason:相同 MISS,怎样决定下一步查什么
人工智能·后端·agent