Node服务连接Mysql数据库

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
简介: 本文介绍了如何在Node服务中连接MySQL数据库,并实现心跳包连接机制。

新建一个express项目;

express myNodeDome

进入文件夹

cd myNodeDome

下载依赖

npm  i

首先下载mysql包

npm i mysql

新建Db.js

//引入mysql包
const mysql = require('mysql')
//链接配置
var connection = mysql.createConnection({
   
    host: 'localhost', //ip
    user: 'root', //用户名
    password: '123456',//密码
    database: 'test' //数据库名
});

connection.connect();//建立链接
//进行查询
connection.query('SELECT * from user where id =2', function (error, results, fields) {
   
    if (error) throw error;
    console.log('The solution is: ', results);
});

查寻语句

SELECT * from user where id =2

在app.js中引用测试,因为项目运行时会自动走一遍引入的js,所以直接会运行;

var Db = require('./public/javascripts/Db')

在这里插入图片描述

数据库信息
在这里插入图片描述
查询结果:
在这里插入图片描述

//改
connection.query('update user set username="666", password="66666" where id=1', function (error, results, fields) {
   
    if (error) throw error;
    console.log('The solution is: ', results);
});
//查
connection.query('SELECT * from user where id =2', function (error, results, fields) {
   
    if (error) throw error;
    console.log('The solution is: ', results);
});
//增
connection.query('insert into user values (null,8868,8886)', function (error, results, fields) {
   
    if (error) throw error;
    console.log('The solution is: ', results);
});
//删
connection.query('delete from  user where id=1', function (error, results, fields) {
   
    if (error) throw error;
    console.log('The solution is: ', results);
});

封装sql语句

第一个参数是sql,第二个参数是一个回调函数

/**
 * 
 * @param {String} str sql语句
 */
const DBFun = (str,fun) => {
   
    connection.query(str, function (error, results, fields) {
   
        if (error) throw error;
        console.log('The solution is: ', results);
        fun(results)
    });
}
//promise形式封装
const DBFunPro = (str) => {
   
    console.log("=========开始查找sql============");
    try {
   
        return new Promise((resolve, reject) => {
   
            connection.query(str, function (error, results, fields) {
   
                if (error) {
   
                    reject([{
    data: "数据库查询报错" }])
                };
                resolve(results)
            });
        })
    } catch{
   
        console.log("请注意sql报错")
    }
}
module.exports={
   
    DBFun,DBFunPro 
}

使用:

var express = require('express');
const {
    v4: uuidv4 } = require('uuid');
const md5 = require('md5');
var router = express.Router();
var Db = require('../public/javascripts/Db')
var endMassage = require('../public/javascripts/endMassage')

//queryId  通过id查询 user 用户信息
router.get('/queryId', function (req, res, next) {
   
  let {
    id } = req.query
  Db.DBFun(`select * from user where id=${
     id}`, (data) => {
   
    res.send(endMassage(data))
  })
});

//登录注册接口  有账号 直接登录  没账号 注册 
router.get('/login', function (req, res, next) {
   
  let {
    username, password } = req.query
  Db.DBFun(`select username,password,uuid from user where username='${
     username}'`, (data) => {
   
    if (data.length) {
   
      if (data[0].password == md5(password)) res.send(endMassage({
    data: "登录成功",code:1 }))
      else res.send(endMassage({
    data: "密码错误", code: 0, uuidStr: data[0].uuid}))

    } else {
   
      let uuidStr = uuidv4()
      let passwordStr = md5(password)
      Db.DBFun(`insert into user(password,username,uuid) values ('${
     passwordStr}','${
     username}','${
     uuidStr}') `, (insertInfo) => {
   
        res.send(endMassage({
    data: "注册成功", uuidStr }))
      })
    }
  })
});
router.post('/postInputItem', (req, res) => {
   
  let {
    name, sex, tel, uuid } = req.body
  Db.DBFun(`select uuid from user_info where uuid='${
     uuid}'`, (data) => {
   
    if (data.length > 0) {
   
      Db.DBFun(`update  user_info set  name='${
     name}',sex='${
     sex}',tel='${
     tel}' where uuid='${
     uuid}'`, (data) => {
   
        res.send(endMassage({
    data: "信息更新成功" }))
      })
    } else {
   
      Db.DBFun(`insert into user_info(uuid,name,sex,tel) values ('${
     uuid}','${
     name}','${
     sex}','${
     tel}')`, (data) => {
   
        res.send(endMassage({
    data: "信息插入成功" }))
      })
    }
  })
})
module.exports = router;
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
11月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
473 18
|
数据管理 关系型数据库 MySQL
数据管理服务DMS支持MySQL数据库的无锁结构变更
本文介绍了使用Sysbench准备2000万数据并进行全表字段更新的操作。通过DMS的无锁变更功能,可在不锁定表的情况下完成结构修改,避免了传统方法中可能产生的锁等待问题。具体步骤包括:准备数据、提交审批、执行变更及检查表结构,确保变更过程高效且不影响业务运行。
2086 2
|
人工智能 Cloud Native 多模数据库
实力见证!数据管理服务DMS、云原生多模数据库Lindorm荣获“2024技术卓越奖”
实力见证!数据管理服务DMS、云原生多模数据库Lindorm荣获“2024技术卓越奖”
369 1
|
关系型数据库 OLAP API
非“典型”向量数据库AnalyticDB PostgreSQL及RAG服务实践
本文介绍了非“典型”向量数据库AnalyticDB PostgreSQL及其RAG(检索增强生成)服务的实践应用。 AnalyticDB PostgreSQL不仅具备强大的数据分析能力,还支持向量查询、全文检索和结构化查询的融合,帮助企业高效构建和管理知识库。
994 19
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
存储 关系型数据库 数据库
RDS:稳定、安全、开放的新一代云数据库服务
RDS是阿里云提供的新一代云数据库服务,具备稳定、安全、开放的特点。本次分享由阿里云智能集团和平安科技专家共同介绍,涵盖RDS年度产品发布与最佳实践、金融场景下关系型数据库的要求。重点内容包括RDS通用云盘、RDS On OSS、RDS Custom等技术创新,以及在成本控制、性能优化、业务连续性、数据安全等方面的解决方案。通过实际案例展示了RDS在不同行业的应用,如汇联易、莉莉丝游戏、中免日上等,帮助客户实现高效、低成本的数据库管理。
889 2
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
1069 3
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
1551 2

推荐镜像

更多