NodeJs 连接本地 mySql 数据库获取数据

写在前面

今天把 nodejs 连接本地数据库的坑简单的踩一下,为后续写接口做个铺垫

安装 mySql (mac举例子)

安装地址

  • 安装完成大概这个样子,起动起来就行
    https://dev.mysql.com/downloads/mysql/
安装本地数据库连接工具(navicat举例子)

安装地址

  • 连接之后 新建一个 Table 的数据 如图
    在这里插入图片描述
本地启动 nodejs
// 生成一个 package.json 文件 便于后面管理插件
npm init -y// 安装 express
npm i express// 安装 mySqlnpm i mysql
实现连接数据库的代码
const express = require('express');
const mysql = require('mysql');const serve = express();
const port = 3000;// TODO: 创建数据库链接
const db = mysql.createConnection({host:"localhost",user:"root",password : "5211314Code",database:"sys",
});// TODO: 测试 test 请求接口
serve.get("/test",(req,res)=>{res.status(403);res.send("访问的资源不存在");
});// TODO: 获取用户数据请求接口
serve.get("/getlist",(req,res)=>{db.query("select * from userinfos",(err,result)=>{if(err){res.status(500).send("数据库访问失败");}else{res.status(200).send(JSON.stringify(result));}})
});// TODO: 启动监听
serve.listen(port,()=>{console.log("serve is running...");
});
启动测试
node linkSql.js

在这里插入图片描述

浏览器中访问测试
http://localhost:3000/test

在这里插入图片描述

http://localhost:3000/getlist

在这里插入图片描述

可能遇到的问题
  • 问题1

在这里插入图片描述问题原因:

这里是因为mysql8.0 以上的严格加密模式,nodejs 的是普通模式,这里即使密码是对的,也无法访问
解决方案:

// 终端打开 mysql
mysql -u root -p
// 输入密码之后 执行命令
alter user 'root'@'localhost' identified with mysql_native_password by '*******(你自己的数据库链接密码)';

在这里插入图片描述

  • 问题 2

在这里插入图片描述
问题原因:

本地电脑安装 mysql 之后没有配置环境变量导致
解决方案:

// 找到本地安装的 mysql
sudo find / -name  mysql

在这里插入图片描述

// 打开本地的配置文件
open ~/.bash_profile
// 添加下面的文件到该文件中
export PATH=${PATH}:/usr/local/mysql/bin // 根据自己的实际路径进行配置
// 刷新 配置文件
source ~/.bash_profile// 避免后续手动更新配置文件(可以不进行)
open ~/.zshrc 
// 添加下面的内容到该文件中
source ~/.bash_profile // 该命令添加到.zshrc 文件中 保存即可
  • 问题 3:

在这里插入图片描述
问题原因:

这里是因为 express 更新之后 语法变了,我这里用的之前的语法,大家以最新的语法为准,按照我上面的写法是不会有这个问题的

总结

这里使用 nodejs 作为后端开发的是可以用到的,这里是一个入门基础的过程,主要是展示链接本地数据库的一个步骤,后续遇到相关问题可以作为参考使用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义模板DIY专属CSDN个人主页!HTML+CSS个性化全攻略

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 💯如何通过HTMLCSS自定义模板diy出自己的个性化csdn主页&#x…

单链表经典算法题2

🌹个人主页🌹:喜欢草莓熊的bear 🌹专栏🌹:数据结构 前言 这次介绍的题会比上次更有难度哦,宝宝们系好安全带。咱们出发了! 一、合并两个有序链表 1.1思路 创建一个新链表来接收合并…

基于FPGA的Cordic向量模式原理及设计

目录 一、向量模式 1、向量模式原理 1.1 1.2 2、向量模式的MATLAB仿真 3、向量模式的FPGA实现 3.1 预处理 3.2 迭代 3.3 结果计算 一、向量模式 1、向量模式原理 已知直角坐标下一点(x,y),如何求该点在极坐标系的坐标&a…

2024华为OD机试真题- 计算三叉搜索树的高度-(C++/Python)-C卷D卷-100分

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述 定义构造三叉搜索树规则如下: 每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。查找的规则是: 1.如果数小于节点的数减去500,则将数插入节点的左子树 2.如果数大于…

T200HSA单路SDI/HDMI+1路3.5音频高清万能采集卡

产品简介: 同三维T200HSA单路高清万能采集卡,可以采集1路SDI/HDMI高清信号1路3.5音频信号,卡上有1个是HDMI接口1个是SDI接口1个3.5音频口,配件有: 1个小档板,PCI-E2.0 X1,分辨率最高可以达到10…

机器学习模型评估之校准曲线

模型校准曲线(Calibration Curve),也称为可靠性曲线(Reliability Curve)或概率校准曲线(Probability Calibration Curve),是一种评估分类模型输出概率准确性的图形工具。它可以帮助我…

【python数据可视化】利用Python爬取天气数据并实现数据可视化,绘制天气轮播图

用Python爬虫抓取全年天气数据并绘制天气轮播图 一、运行结果: 二、代码展示: 由csv文件生成↓ 接下来是绘制天气轮播图 运行结果: 完整代码请看这里↓👇 提醒制作这个项目你需要执行以下几个步骤: 确定数据源&#x…

OTN分层结构变成什么样了?

传统OTN的三层架构包括光传输段层(OTS)、光复用段层(OMS)和光通道层(OCh),它们共同构成了OTN的三层结构。 其中: 光传输段层(OTS):OTS是OTN中最高…

鸿蒙 Web组件的生命周期(api10、11、12)

概述 开发者可以使用Web组件加载本地或者在线网页。 Web组件提供了丰富的组件生命周期回调接口,通过这些回调接口,开发者可以感知Web组件的生命周期状态变化,进行相关的业务处理。 Web组件的状态主要包括:Controller绑定到Web组…

力扣SQL50 平均售价 ifnull SUM 连表查询

Problem: 1251. 平均售价 👨‍🏫 参考题解(题目数据增强,代码只能过90%的点) 🍻 AC code SELECT p.product_id, ROUND(ifnull(SUM(units * price) / SUM(units), 0),2) AS average_price FROM prices a…

初学51单片机之数字秒表

不同数据类型间的相互转换 在C语言中,不同数据类型之间是可以混合运算的。当表达式中的数据类型不一致时,首先转换为同一类型,然后再进行计算。C语言有两种方式实现类型转换。一是自动类型转换,另外一种是强制类型转换。 转换的主…

2024GLEE生活暨教育(上海)博览会,8月20-22日,国家会展中心(上海)

2024GLEE生活暨教育(上海)博览会将于8月20-22日在中国国家会展中心(上海)举行,博览会总面积近万平方米,设有美好生活和教育产品两大主力展区,全面覆盖婴幼儿、学龄前、小学、初中、高中、大学、中年、老年各个年龄段的…

Nvidia Isaac Sim搭建仿真环境 入门教程 2024(4)

Nvidia Isaac Sim 入门教程 2024 版权信息 Copyright 2023-2024 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. …

银行数仓项目实战(六)--基础层(完成存款的明细表---宽表)

文章目录 熟悉业务模型设计梳理映射关系加工宽表测试提交 FDM基础层:根据主题(需求),将源数据加工集成,形成业务明细表–宽表 熟悉业务 当我们的工作来到基础层,我们首先要做的是跟甲方沟通,要…

Harmony设计模式-单例模式

Harmony设计模式-单例模式 前言 软件设计模式([Design pattern](https://baike.baidu.com/item/Design pattern/10186718?fromModulelemma_inlink)),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经…

动态网页制作技术

动态网页制作技术是一种利用脚本语言、数据库和服务器端程序来生成动态内容的网页技术。以下是常用的动态网页制作技术: 1.PHP:PHP是一种广泛使用的服务器端脚本语言,可以嵌入到HTML中,用于生成动态网页内容。它可以与各种数据库进…

前端调试技巧

1、利用console打印日志 2、利用debugger关键字,浏览器f12调用到方法debugger处会断点住,可以利用浏览器调试工具查看变量 a.监视表达式可以添加想要观察的变量 b.调用堆栈可以观察方法调用链 3、xhr断点 请求地址包含v1.0/banner_theme/pagelist&a…

中科大和字节AI视频生成CamTrol杀疯了!运动可控,效果惊艳!

大家好,我是阿潘,今年堪称视频生成的爆发的一年,sora 2024年2月15日发布,让全世界都震惊了。openai 有一次成为了行业标杆。从生成的效果来看,比起以往抽象的生成结果,有了巨大的提升。 今天和大家分享中科…

DevExpress WPF中文教程:Grid - 如何将更改发布到数据库(设计时)?

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

c++设计模式之一创建型模式

1、创建型模式(常见的设计模式) Factory 模式(工厂模式,被实例化的子类) 在面向对象系统设计中经常可以遇到以下的两类问题: 下面是第一类问题和代码示例:我们经常会抽象出一些类的公共接口以…