当前位置: 首页 > news >正文

nodejs连接mysql

npm i express #node后端框架
npm i cors
npm i mysql
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}端口已监听`)
})

访问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 '你想要的密码';
FLUSH PRIVILEGES;

创建一张表

create table users(
uid int(20)not null unique auto_increment, #unique唯一约束,auto_increment:自增
name varchar(255) not null,
pwd varchar(255)not null);
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}端口已监听`)
})

需要的情况下

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

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)}})
})

nodejs+rsa加密

npm i node-rsa

创建实例

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

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

创建“空”键

var key = new NodeRSA();

生成新的512位长度密钥

var key = new NodeRSA({ b :512 });

导入/导出密钥

   /*实例*/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]);

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);
http://www.lryc.cn/news/89236.html

相关文章:

  • 异构跨库数据同步还在用Datax?来看看这几个开源的同步方案
  • msvcp140.dll丢失怎么办?msvcp140.dll重新安装的解决方法
  • mysql超全语法大全
  • 【VR】手柄定位技术
  • TDengine 启动 taosAdapter,提供基于6041端口的RESTful 接口,建立REST 连接
  • SY8205同步降压DCDC可调电源模块(原理图和PCB)
  • 电装光庭汽车电子(武汉)有限公司
  • 2023年DAMA-CDGA/CDGP认证合肥/厦门/长春/深圳可以报名
  • android 12.0launcher3中workspace app列表页不显示某个app图标
  • Java 编写websocket client 压测脚本
  • 设计模式之【备忘录模式】,“后悔药”是可以有的
  • ATECLOUD云测试平台新能源电机测试系统:高效、可扩展的测试利器
  • 项目随机问题笔记
  • Linux网络编程之recv函数
  • ChatGPT免费使用的方法有哪些?
  • 【华为OD机试】找朋友【2023 B卷|100分】
  • 【教学类-35-01】带笔画步骤图的描字(姓氏)(A4整张)
  • 关于PyQt5的环境搭建
  • rsync+inotfy实时同步
  • Python代码写好了怎么运行
  • 2023 年的 Web Worker 项目实践
  • C++的最后一道坎 | 百万年薪的程序员
  • Unity的OnOpenAsset:深入解析与实用案例
  • 【Netty】Netty 程序引导类(九)
  • 如何使用进行MQ中间件接口测试
  • Zebec生态进展迅速,频被BitFlow、Matryx DAO等蹭热度碰瓷
  • 7种PCB走线方式
  • Rabbit SpringBoot高级用法
  • 找不到vcruntime140.dll,无法继续执行代码?多种解决方法解析
  • 自然语言处理实战项目8- BERT模型的搭建,训练BERT实现实体抽取识别的任务