Node连接mysql数据库

一:创建项目:

  1. 打开创建项目目录:express myproject

  2. 切换到项目目录:cd .myproject

  3. 下载扩展包:npm install

  4. 启动:npm start

    代码储存在:E:代码存储空间NodeDmeo01myDemo2

二:连接数据库:

  1. 删去bin目录:在app.js中改写一下就好。

  2. 在app.js中加入改写内容

    //头部加入:
    var http=require('http');
    var server=http.createServer(app);
    ​
    //尾部删去module.exports=app,并监听一下当前端口
    server.listen('3000');
  3. 安装mysql:npm install mysql --save

  4. 打开mysql创建一个表,我这里是直接创建database:login,teble:user。

  5. 在项目目录新建一个文件夹‘util’,并新建dbconfig.js连接数据库

    //引用数据库:
    const mysql=require('mysql');
    //直接暴露数据库配置
    module.exports={
        //数据库配置:
        config:{
            host:'localhost',
            port:'3306',
            user:'root',
            password:'',
            database:'login'
        }
        //连接数据库,使用mysql连接池连接
        //连接池的对象
        sqlConnect:function(sql,sqlArr,callBack){
            var pool=mysql.createPool(this.config);
            pool.getConnect((err,conn)=>{
                console.log("123");
                if(err){
                    console.log("连接失败");
                    return;
                }
                //事件驱动回调
                conn.query(sql,sqlArr,callBack);
                //释放连接:
                conn.release();
            })
        }
    }
    ​
    const config={
        
    }
  6. 测试一下是否连接成功:

    //在routes/index.js下
    router.get('/', function(req, res, next) {
      //res.render('index', { title: 'Express' });
      var sql="select * from user"
      var sqlArr=[];
      var callBack=(err,data)=>{
        if(err){
          console.log('连接出错');
        }
        else{
          //成功的话返回一个数据
          res.send({
            'list':data
          })
        }
      };
    ​
      //调用写过的mysql查询方法:
      dbConfig.sqlConnect(sql,sqlArr,callBack);
    ​
    });
    module.exports = router;
     
  7. 包装分类:将index.js中的代码封装到control.js中

    var dbConfig=require('../util/dbconfig')
    ​
    //获取分类:
    getLogin=(req,res)=>{
        var sql="select * from user"
      var sqlArr=[];
      var callBack=(err,data)=>{
        if(err){
          console.log('连接出错');
        }
        else{
          //成功的话返回一个数据
          res.send({
            'list':data
          })
        }
      };
    ​
      //调用写过的mysql查询方法:
      dbConfig.sqlConnect(sql,sqlArr,callBack);
    }
    ​
    module.exports={
        getLogin
    }
  8. 重写路由的index.js:

    var express = require('express');
    var router = express.Router();
    var dbControl=require('../Control/dbcontrol');
    ​
    /* GET home page. */
    router.get('/', dbControl.getLogin);
    module.exports = router;

 

三:带参获取信息:

getLoginData=(req,res)=>{
    let {id}=req.query;
    var sql='select * from emp  where EMPNO?';
    var sqlArr=[id];
    var callBack=(err,data)=>{
        if(err){
          console.log('连接出错');
        }
        else{
          //成功的话返回一个数据
          res.send({
            'list':data
          })
        }
      };
​
      //调用写过的mysql查询方法:
    dbConfig.sqlConnect(sql,sqlArr,callBack);
}

注册一下路由:

var express = require('express');
var router = express.Router();
var dbControl=require('../Control/dbcontrol');
​
/* GET home page. */
router.get('/', dbControl.getLogin);
router.get('/getLoginData',dbControl.getLoginData);
module.exports = router;

打开postman测试

 

原文地址:https://www.cnblogs.com/instead-everyone/p/14588966.html