ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

node.js操作mysql数据库,写一个真实的接口

2021-09-21 17:57:51  阅读:135  来源: 互联网

标签:node console err 数据库 sql js mysql 连接


mysql模块是一个第三方模块,专门用来操作MySQL数据库。 我们可以在npm包中先下载模块才能进行node.js连接操作mysql数据库。
npm包下载方法参考 mysql模块介绍

使用步骤

要想用这个包连接数据库,首先要确保在电脑有mysql(phpstudy 还要启动mysql服务)

一共需要4个步骤:

  1. 加载 MySQL 模块

  2. 创建 MySQL 连接对象

  3. 连接 MySQL 服务器

  4. 执行SQL语句

// 1. 加载msyql
var mysql = require('mysql');

// 2. 创建连接
var connection = mysql.createConnection({
  host     : 'localhost',   // 你要连接的数据库服务器的地址
  port     : 3306,// 端口号
  user     : 'root',        // 连接数据库服务器需要的用户名
  password : 'root',        // 连接数据库服务器需要的密码
  database : 'node136'      //你要连接的数据库的名字
});

// 3. 连接数据库
connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log('数据库连接失败')
  // 没有错误对象提示连接成功
  console.log('mysql数据库连接成功')
});

// 4. 执行SQL语句
let sql = 'select id,name,age from student';//想要做不同操作更改不同sql语句即可
connection.query(sql, (err, result) => {
    if (err) {
    	console.log('错误',err)
    } else {
      console.log(result); // result就是查询结果
    }
});

参考地址: https://www.npmjs.com/package/mysql#introduction

写一个真正的接口

目标

基于nodejs 用express + mysql 包 写接口
基于nodejs 用express + mysql 包 写接口,实现学生数据添加。

要求:

接口1

添加学生数据
url: localhost:3000/api/student
method: post
参数格式:普通键值对

  • name: 字符串
  • age: 数值

测试:postman来测试

接口2

获取所有的学生数据

url: localhost:3000/api/student

method: get

参数:无

测试:postman来测试

思路

  1. 创建项目serverAPI
  2. npm init --yes
  3. 安装包: npm i express mysql
  4. restful风格

实现添加

sql.js

// 1. 加载msyql
var mysql = require('mysql');

// 2. 创建连接
var connection = mysql.createConnection({
  host     : 'localhost',   // 你要连接的数据库服务器的地址
  port     : 3306,// 端口号
  user     : 'root',        // 连接数据库服务器需要的用户名
  password : 'root',        // 连接数据库服务器需要的密码
  database : 'node136'      //你要连接的数据库的名字
});

// 3. 连接数据库
connection.connect((err) => {
  // 如果有错误对象,表示连接失败
  if (err) return console.log('数据库连接失败')
  // 没有错误对象提示连接成功
  console.log('mysql数据库连接成功')
});

module.exports = connection

参考代码

const express = require('express')

const app = express()

app.use(express.urlencoded())

const connection = require('./utils/sql')
app.post('/api/student',(req,res)=>{
    console.log(req.body)
    // 1. 接收普通键值对的参数
    const { name, age } = req.body
    // 2. 添加到数据库中
    const sql = `insert into student(name, age) values('${name}',${age})`
    console.log('要执行的sql', sql)
    // connection.query(sql语句,(err, data)=>{
    connection.query(sql,(err, data)=>{
        if(err) {
            console.log(err)
            res.json({msg:'添加失败', code: 0})
        } else {
            console.log(data)
            // 返回
            res.json({msg:'添加成功', code: 1})
        }
    })
})

app.get('/api/student',(req,res)=>{
    // 返回
    res.json({msg:'查询成功', code: 1})
})

app.listen(3000, ()=>{
    console.log('接口服务器启动,3000...')
})

实现查询

app.get('/api/student',(req,res)=>{
    // 创建sql
    // connection.query(sql,(err, data)=> {   })

    const sql = `select * from student`
    connection.query(sql,(err, data)=> {
        if(err) {
            res.json({msg:'查询失败', code: 0})
        } else {
            res.json({msg:'查询成功', code: 1,result: data})
        }
    })
})

标签:node,console,err,数据库,sql,js,mysql,连接
来源: https://blog.csdn.net/weixin_49157566/article/details/120403201

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有