zoukankan      html  css  js  c++  java
  • 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测试

     

  • 相关阅读:
    LeetCode-216 Combination Sum III
    LeetCode-214 Shortest Palindrome
    LeetCode-212 Word Search II
    LeetCode-211 Add and Search Word
    LeetCode-210 Course Schedule II
    LeetCode-209 Minimum Size Subarray Sum
    LeetCode-208 Implement Trie (Prefix Tree)
    LeetCode-207 Course Schedule
    JavaEE--Mybatis学习笔记(四)--单表的CURD 补充
    JavaEE--Mybatis学习笔记(三)--单表的CURD
  • 原文地址:https://www.cnblogs.com/instead-everyone/p/14588966.html
Copyright © 2011-2022 走看看