• nodejs连接mysql


    npm i express #node后端框架
    
    • 1
    npm i cors
    
    • 1
    npm i mysql
    
    • 1
    const app = require('express')();
    const cors = require('cors');
    const port = 5000;
    const mysql = require('mysql')     //引入mysql 模块
    
    app.use(cors({}))
    
    const conn = mysql.createConnection({
        user: 'root',
        password: 'qwertyuiop1',
        //password: '123456',
        host: 'localhost',
        database: 'learn_test'
    })
    
    app.get('/',(req,res)=>{
    // 测试连接
        conn.connect(err=>{
            console.log(err,'如果为null 就是连接成功');
        })
        res.send("")
    })
    
    app.listen(port,()=>{
        console.log(`${port}端口已监听`)
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    访问http://localhost:5000
    在这里插入图片描述

    error: er_not_supported_auth_mode: client does not support authentication protocol requested by server; consider upgrading mysql client

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你想要的密码';
    
    • 1
    FLUSH PRIVILEGES;
    
    • 1

    创建一张表

    create table users(
    uid int(20)not null unique auto_increment, #unique唯一约束,auto_increment:自增
    name varchar(255) not null,
    pwd varchar(255)not null);
    
    • 1
    • 2
    • 3
    • 4
    const app = require('express')();
    const cors = require('cors');
    const port = 5000;
    const mysql = require('mysql')     //引入mysql 模块
    
    app.use(cors({}))
    
    const conn = mysql.createConnection({
        user: 'root',
        password: 'qwertyuiop1',
        //password: '123456',
        host: 'localhost',
        database: 'learn_test'
    })
    
    // 测试连接
    conn.connect(err=>{
        console.log(err,'如果为null 就是连接成功');
    })
    
    app.get('/',(req,res)=>{
        let sqlStr = `insert into users(name,pwd) values('${req.query.name}','${req.query.pwd}')`
        conn.query(sqlStr,(err)=>{
            if(err != null){
                console.log(err)
            }else {
                console.log("")
            }
        })
        res.send("插入成功")
    })
    
    app.listen(port,()=>{
        console.log(`${port}端口已监听`)
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    需要的情况下

    #查询表结构
    desc 表名;
    
    • 1
    • 2
    #删除表
    drop table 表名;
    
    • 1
    • 2

    node查询mysql

    app.get('/selectUsers',(req,res)=>{
        let sqlStr = `select * from users`;
        conn.query(sqlStr,(err,results)=>{
            if(err != null){
                res.send(err)
            }else {
                res.send(results)
            }
        })
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    nodejs+rsa加密

    npm i node-rsa
    
    • 1

    创建实例

    var  NodeRSA  = require (' node-rsa '); 
    
    var  key  = new NodeRSA[ keyData ,[ format ] ],[ options ] );
    
    • 1
    • 2
    • 3

    keyData - {string|buffer|object}用于生成密钥或以支持的格式之一生成密钥的参数。
    format - {string}导入密钥的格式。查看有关导出/导入部分格式的更多详细信息。
    options - {object}- 其他设置。

    创建“空”键
    var key = new NodeRSA();
    
    • 1
    生成新的512位长度密钥
    var key = new NodeRSA({ b :512 });
    
    • 1
    导入/导出密钥
       /*实例*/
        var publicDer = key.exportKey('public');
        var privateDer = key.exportKey('private');
        console.log('公钥:',publicDer);
        console.log('私钥:',privateDer);
    
        key.importKey(result[1], 'private');
    
        /*语法*/
        key.importKey(keyData, [format]);
        key.exportKey([format]);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    keyData - {string|buffer}- 可能是:
    键入PEM字符串
    包含PEM字符串的缓冲区
    包含DER编码数据的缓冲区
    对象包含关键组件
    format - {string}- 用于导出/导入的格式ID。

    加密/解密
    /*加密*/
    key.encrypt(buffer, [encoding], [source_encoding]);
    key.encryptPrivate(buffer, [encoding], [source_encoding]); // 使用私钥进行加密 
    /*解密*/
    key.decrypt(buffer, [encoding]);
    key.decryptPublic(buffer, [encoding]); // 使用公钥解密 
    
    /*实例*/
    var encryData = key.encryptPrivate(req.body.user_pwd, 'base64','utf8');
        console.log('加密后的数据',encryData);
    var decryptData = key.decryptPublic(result[0],'utf8');
        console.log('解密后的数据',decryptData);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    Spring boot 集成 xxl-job
    网络安全(黑客)自学笔记
    【C++入门到精通】C++入门 —— set & multiset (STL)
    netdata数据持久化配置
    线程池的原理
    vue中的响应式数据和副作用函数
    【wireshark抓取数据包-PGSQL协议】
    Hadoop 集群配置 SSH
    elasticSearch 接口实现查询热词统计
    XGBoost的原理、公式推导
  • 原文地址:https://blog.csdn.net/yasinawolaopo/article/details/130890193