• js中require()的用法----JS如何连接数据库执行sql语句或者建立数据库连接池


    var vue = require('vue');

    引入vue的意思,commonjs的写法。node都是用require来载入模块的,可以看看webpack+vue。

    require()可以调用模块。

    这不是就把vue模块命了个名吗?

    nodejs的写法,引入vue模块并命名为vue的意思。前端的东西,大多都是跑在nodejs上的,所以引用模块方式就必须按照nodejs标准

    ===================================================================

    链接:https://blog.csdn.net/u011146511/article/details/78992040

    mysql权限:http://blog.csdn.net/anzhen0429/article/details/78296814

    npm的mysql地址:https://www.npmjs.com/package/mysql

    ---------------直连mysql-------------

    var router = function(app){
    app.get('/one', function (req, res) {
    res.writeHeader(200, {'Content-Type':'text/plain;charset=UTF-8'});
    // res.sendFile("/Users/wofu/Desktop/node/views/one.html");
    res.write("ddd");
    var mysql=require('mysql');//调用mysql模块
    //创建一个connection数据库连接对象
    var connection=mysql.createConnection({
    host:'localhost',//主机
    user:'root',//mysql认证的用户名
    password:'123456',//mysql用户密码
    database:'firstDB',//数据库名
    port:'3306'//端口号
    });
    //链接数据库
    connection.connect(function(err){
    if(err){
    console.log(err);
    return;
    }else{
    res.write("数据库连接成功");
    res.end();
    }
    });
    //插入数据,,update和delete跟insert类似
    var name="lamb9";
    var ages=30;
    var userAddSql='insert into people (name,ages) values(?,?)';
    var params=[name,ages];
    ******加参数的方法,应用于sql语句中有?占位符的情况
    connection.query(userAddSql,params,function(err,rs){
    if(err){
    console.log(err.message);
    return;
    }else {
    console.log("插入成功");
    console.log(rs);
    }
    });


    //*****query语句不加第二个参数************************************
    var nam="lamb10";
    var ag=30;
    var userAddSql='insert into people (name,ages) values("lambo10",20)';
    connection.query(userAddSql,function(err,rs){
    if(err){
    console.log(err.message);
    return;
    }else {
    console.log("插入成功");
    console.log(rs);
    }
    });
    //删除---query带参数**********************************************
    var userdeletSql='delete from people where id=?';
    var upparams=6;
    connection.query(userdeletSql,upparams,function(err,rs,fields){
    if(err){
    console.log(err);
    return ;
    }else{
    console.log("删除成功");


    }
    });


    //删除---query不带参数***************************************************
    var userdeletSql='delete from people where id=7';
    connection.query(userdeletSql,function(err,rs,fields){
    if(err){
    console.log(err);
    return ;
    }else{
    console.log("删除成功");


    }
    });
    //查询-----query带参数************************************************
    var userinsertSql='SELECT *from people where name=?';
    var insertparams='lambo';
    connection.query(userinsertSql,insertparams,function(err,rs,fields){
    if(err){
    console.log(err);
    return ;
    }else{
    console.log("查询成功");
    for(var i=0;i<rs.length;i++){
    console.log(rs);
    console.log(rs[0].name);//rs是查询的结果集,是一个二维数组,第一维是一条记录,第二维是一条记录中的各字段值
    }
    }
    });


    ///qurey不带参数************************************************
    var userinsertSql='SELECT *from people where name="lambo"';


    connection.query(userinsertSql,function(err,rs,fields){
    if(err){
    console.log(err);
    return ;
    }else{
    console.log("查询成功");
    for(var i=0;i<rs.length;i++){
    console.log(rs);
    console.log(rs[0].name);//rs是查询的结果集,是一个二维数组,第一维是一条记录,第二维是一条记录中的各字段值
    }
    }
    });
    //更新---query带参数**********************************************
    var userupdatetSql='update people set ages=? where name=?';
    var upparams=[23,"four"];
    connection.query(userupdatetSql,upparams,function(err,rs,fields){
    if(err){
    console.log(err);
    return ;
    }else{
    console.log("更新成功");


    }
    });


    //更新---query不带参数***************************************************
    var userupdatetSql='update people set ages=24 where name="four"';
    connection.query(userupdatetSql,function(err,rs,fields){
    if(err){
    console.log(err);
    return ;
    }else{
    console.log("更新成功");


    }
    });
    //关闭连接
    connection.end(function(err){
    if(err){
    console.log(err.toString());
    return;
    }else{
    console.log("关闭连接");
    }
    });
    });
    };


    exports.router = router;
    =======================连接池连接mysql=====================

    连接池的原理:初始化的时候创建多个连接,放到数组中存起来;当有访问数据的时候,不用再创建连接,直接从连接池取出连接使用进行各种数据库操作,操作关闭后再放回连接池中;连接池会自动管理池中的连接(当访问量少的时候,会自动减少一些连接,当访问量大的时候会自动增加一些连接);

    安装连接池 :1.需要安装mysql:npm install mysql -g   2.需要安装mysqlpool模块npm install -g node-mysql

    *********************创建连接池

    var router = function(app){
    var mysql=require('mysql');//调用mysql模块
    app.get('/one', function (req, res) {
    // res.sendFile("/Users/wofu/Desktop/node/views/one.html");
    res.writeHeader(200, {'Content-Type':'text/plain;charset=UTF-8'});
    res.write("ddd");

    //***使用连接池操作数据库
    var Pool=mysql.createPool({
    host:'localhost',//主机
    user:'root',//mysql认证的用户名
    password:'123456',//mysql用户密码
    database:'firstDB',//数据库名
    port:'3306'//端口号
    });
    //有连接时调用
    Pool.on('connection', function (connection,err) {
    if(err){ console.log(err);
    return;}else{res.write("数据库连接成功");
    res.end();
    }
    });

    //一个连接上的活动全部执行完时调用
    Pool.on('acquire', function (connection) {
    console.log('Connection %d acquired', connection.threadId);
    });
    //等待一个有效队列
    Pool.on('enqueue', function () {
    console.log('Waiting for available connection slot');
    });
    //一个连接释放了
    Pool.on('release', function (connection) {
    console.log('Connection %d released', connection.threadId);
    });

    // //结束所有连接
    // Pool.end(function (err) {
    // if (err){
    // console.log(err);
    // }else {
    // console.log("连接全部关闭");
    // }
    // });

    //从链接池中获取一个连接
    Pool.getConnection(function(err,connection){
    // 执行数据库操作 增删改查和直接连接mysql一样
    var userAddSql='insert into people (name,ages) values(?,?)';
    var params=['bbb',11];
    connection.query(userAddSql,params,function(err,rs){
    if(err){
    console.log(err.message);
    return;
    }else{
    console.log('insert success');
    res.write("成功");
    res.end();//这句话表示浏览器相应结束,如果在这句话后继续向浏览器写入会报错,res.write()是错误的;
    }

    connection.release();//放回连接池
    });
    });
    });
    };
    exports.router = router;
    var router = function(app){
    var fs =require('fs');
    var http=require('https');
    var mysql=require('mysql');//调用mysql模块
    var request = require('request');
    var url = require('url');
    var querystring = require('querystring');
    var bodyParser = require("body-parser");
    var urlencodedParser = bodyParser.urlencoded({ extended: false })
    app.get('/get',function (req, res) {
    // console.log(req.query);//{ name: 'lambo' }
    // console.log(req.query.name);//lambo
    // console.log(req.url);///one?name=lambo
    // console.log(url.parse(req.url).pathname);// /one
    // console.log(url.parse(req.url).query);// name=lambo
    // app.post('/one',urlencodedParser,function (req, res) {

    //text/html,application/json", @"text/json", @"text/javascript",@"text/html",
    //@"text/xml", @"text/plain; charset=utf-8",image/png
    // res.writeHeader(200, {'Content-Type':'image/png;charset=UTF-8'});
    res.writeHeader(200, {'Content-Type':'text/html;charset=UTF-8'});
    // res.writeHeader(200, {'Content-Type':'application/json;charset=UTF-8'});

    // 输出 JSON 格式
    var json = JSON.stringify({
    "msg":"成功",
    result:[{
    "name":"新闻",
    "site":"http:www.baidu.com"
    },{
    "name":"新手教程",
    "site":"csdnnnn"
    }],
    "status":"1"
    }
    );
    console.log(json);
    res.write(json);
    res.end(json);


    //***使用连接池操作数据库
    var Pool=mysql.createPool({
    host:'localhost',//主机
    user:'root',//mysql认证的用户名
    password:'123456',//mysql用户密码
    database:'firstDB',//数据库名
    port:'3306'//端口号
    });
    //

    Pool.on('connection', function (connection,err) {
    if(err){
    console.log(err);
    return;
    }else{
    // res.write("数据库连接成功");
    // res.end();
    }

    });
    //
    //监听----获得一个连接时调用
    Pool.on('acquire', function (connection) {
    console.log('Connection %d acquired', connection.threadId);
    });
    //等待一个有效队列
    Pool.on('enqueue', function () {
    console.log('Waiting for available connection slot');
    });
    //一个连接释放了
    Pool.on('release', function (connection) {
    console.log('Connection %d released', connection.threadId);
    });


    // //结束所有连接
    // Pool.end(function (err) {
    // if (err){
    // console.log(err);
    // }else {
    // console.log("连接全部关闭");
    // }
    // });

    //从链接池中获取一个连接
    Pool.getConnection(function(err,connection){
    // // *************执行数据库操作 增删改查和直接连接mysql一样
    // //插入,query加占位
    // var userAddSql='insert into people (name,age,birthday) values(?,?,?)';
    // var params=['bbb',11,new Date()];
    // connection.query(userAddSql,params,function(err,rs){
    // if(err){
    // console.log(err.message);
    // return;
    // }else{
    // console.log('insert success');
    //
    //
    // var json = JSON.stringify({
    // "msg":"成功",
    // result:[{
    // "name":"新闻",
    // "site":"http:www.baidu.com"
    // },{
    // "name":"新手教程",
    // "site":"csdnnnn"
    // }],
    // "status":"1"
    // }
    // );
    //
    // res.write(json);
    // res.end();
    // }
    // });//****************




    // //******插入,query不加占位,直接写参数
    // var nam="lamb10";
    // var ag=30;
    // var userAddSql='insert into people (name,age,birthday) values("nam",21,now())';
    // connection.query(userAddSql,function(err,rs){
    // if(err){
    // console.log(err.message);
    // return;
    // }else {
    // console.log("插入成功");
    // console.log(rs);
    // }
    // });//*********

    // //*****删除---query加占位**********************************************
    // var userdeletSql='delete from people where id=?';
    // var upparams=269;
    // connection.query(userdeletSql,upparams,function(err,rs,fields){
    // if(err){
    // console.log(err);
    // return ;
    // }else{
    // console.log("删除成功");
    //
    // }
    // });//**************
    //
    // //删除---query不加占位**************************************************
    // var userdeletSql='delete from people where id=7';
    // connection.query(userdeletSql,function(err,rs,fields){
    // if(err){
    // console.log(err);
    // return ;
    // }else{
    // console.log("删除成功");
    //
    // }
    // });//*************
    //
    // //查询-----query带占位************************************************
    // var userinsertSql='SELECT *from people where name=?';
    // var insertparams='lambo2';
    // connection.query(userinsertSql,insertparams,function(err,rs,fields){
    // if(err){
    // console.log(err);
    // return ;
    // }else{
    // console.log("查询成功");
    // for(var i=0;i<rs.length;i++){
    // console.log(rs);
    // console.log(rs[0].name);//rs是查询的结果集,是一个二维数组,第一维是一条记录,第二维是一条记录中的各字段值
    // }
    // }
    // });//**********************
    //
    //
    // ///查询----不带占位************************************************
    // var userinsertSql='SELECT *from people where name="bbb"';
    // connection.query(userinsertSql,function(err,rs,fields){
    // if(err){
    // console.log(err);
    // return ;
    // }else{
    // console.log("查询成功");
    // for(var i=0;i<rs.length;i++){
    // console.log(rs);
    // console.log(rs[0].name);//rs是查询的结果集,是一个二维数组,第一维是一条记录,第二维是一条记录中的各字段值
    // }
    // }
    // });//***************************
    //

    // //更新---带占位**********************************************
    // var userupdatetSql='update people set age=? where name=? and id=?';
    // var upparams=[23,"lambo2",3];
    // connection.query(userupdatetSql,upparams,function(err,rs,fields){
    // if(err){
    // console.log(err);
    // return ;
    // }else{
    // console.log("更新成功");
    //
    // }
    // });//*******************
    //

    // //更新---不带占位***************************************************
    // var userupdatetSql='update people set age=24 where name="lambo2" and id=11';
    // connection.query(userupdatetSql,function(err,rs,fields){
    // if(err){
    // console.log(err);
    // return ;
    // }else{
    // console.log("更新成功");
    //
    // }
    // });//******************


    // //关闭当前的连接连接
    // connection.end(function(err){
    // if(err){
    // console.log(err.toString());
    // return;
    // }else{
    // console.log("关闭连接");
    // }
    // });


    connection.release();//放回连接池
    });//poolconnect

    });//get请求
    };
    exports.router = router;

  • 相关阅读:
    javaWeb应用 ssm架构 三方外卖系统
    字节跳动2017秋招-前端工程师
    原码补码反码
    MVVM设计模式
    初始化 react 项目
    antd-mobile定制主题
    jeecg-boot 在线代码生成记
    jeecg-boot 开源代码 问题记录
    idea 导入maven 项目一点反应没有,无识别
    layui 搜索加动态添加列
  • 原文地址:https://www.cnblogs.com/mark5/p/11644083.html
Copyright © 2020-2023  润新知