在node中使用mysql

总体思路

1. 安装mysql包

npm i mysql --save

  • 建一个数据库的配置文件

    const mysql = require("mysql")
    
    const connection = mysql.createConnection({
        host: 'localhost',
        user: 'MysqlNode',
        password: '020311',
        database: 'MysqlNode'
    })
    
    module.exports = connection
    • 每个参数的含义

      host

      主机地址 (默认:localhost)

      user

      用户名

      password

      密码

      port

      端口号 (默认:3306)

      database

      数据库名

      charset

      连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)

      localAddress

      此IP用于TCP连接(可选)

      socketPath

      连接到unix域路径,当使用 host 和 port 时会被忽略

      timezone

      时区(默认:'local')

      connectTimeout

      连接超时(默认:不限制;单位:毫秒)

      stringifyObjects

      是否序列化对象

      typeCast

      是否将列值转化为本地JavaScript类型值 (默认:true)

      queryFormat

      自定义query语句格式化方法

      supportBigNumbers

      数据库支持bigint或decimal类型列时,需要设此option为true (默认:false)

      bigNumberStrings

      supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false)

      dateStrings

      强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false)

      debug

      开启调试(默认:false)

      multipleStatements

      是否许一个query中有多个MySQL语句 (默认:false)

      flags

      用于修改连接标志

      ssl

      使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件

  • 2. 连接数据库

    在app.js入口文件中进行数据库的连接

    const mysql_conn = require(path.join(__dirname, "database/configure.js")) //加载数据库配置信息
    
    mysql_conn.connect(function(err, result) {
        if (err) {
            console.log("数据库连接失败!")
        }
        console.log("数据库连接成功!")
    })
  • 3.封装对应的SQL语句数据处理函数

    const path = require("path")
    
    const mysql_conn = require(path.join(__dirname, "../configure.js"))
    
    exports.findAll = function(callback) {
        let sql = 'SELECT * FROM websites ';
        mysql_conn.query(sql, function(err, result) {
            if (err) {
                return callback(err)
            }
            return callback(null, result)
        })
    }
  • 4.在路由文件中直接使用对应的函数

    const express = require("express")
    
    const path = require("path")
    
    const test_mysql = require(path.join(__dirname, "../database/include/test_mysql.js"))
    
    const router = express.Router()
    
    router.get("/test", function(req, rep, next) {
        test_mysql.findAll(function(err, result) {
            if (err) {
                return next(err)
            }
            rep.status(200).send(result)
        })
    })
    module.exports = router

    :warning:路由的引入需要在数据库链接之后

Last updated