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

怎么制作网站维护公告效果建设银行网站上的的研究报告

怎么制作网站维护公告效果,建设银行网站上的的研究报告,广州中小企业网站制作,做网站教程pdf目录 前言 开篇语 准备工作 初始配置 创建连接池 操作数据库 封装方法 结束语 前言 开篇语 本节讲解如何使用Node.js实现与MySQL数据库的连接#xff0c;并将该过程进行函数封装。 与基础部分的语法相比#xff0c;ES6的语法进行了一些更加严谨的约束和优化#…目录 前言 开篇语 准备工作 初始配置 创建连接池 操作数据库 封装方法 结束语 前言 开篇语 本节讲解如何使用Node.js实现与MySQL数据库的连接并将该过程进行函数封装。 与基础部分的语法相比ES6的语法进行了一些更加严谨的约束和优化因此在之后使用原生JS时我们应该尽量使用ES6的语法进行代码编写。 准备工作 软件【参考版本】Visual Studio CodePostman或ApifoxNavicat Premium 16 插件扩展包Live Server 系统版本 Win10/11 提示node.js在当前文件夹下使用cmd运行不在浏览器解析运行 初始配置 当然首先我们需要进行初始化得到package.json这一步前几期已经反复提及不再赘述。 然后使用npm下载mysql包记得在生产环境下并进行导入。 我没有选择版本配置文件中显示的版本是这个—— dependencies: {     mysql: ^2.18.1,     nodemon: ^3.1.7   } 我这里还下载了nodemon包这样就不用编辑后反复关闭批处理程序了。 记得在scripts里面配置下面的启动语句文件名自己起省略后缀—— start: nodemon 1.连接数据库 最后在我们的 1.连接数据库.js 中导入mysql包—— // 1.导入MySQL包 const mysql require(mysql); 创建连接池 在node.js中创建一个连接池Pool用于连接指定地址下的指定数据库。 创建连接池的方法为createPool它接收一个对象该对象中有下面这些属性—— 属性作用host设置连接数据库的地址port设置端口号MySQL端口号为3306user登录数据库的用户名password登录数据库的密码database使用的数据库相当于MySQL中use的数据库 这里假设我们在本地有一个名为student的数据库登录的用户名和密码这个都要自己设置好哈分别为root123456 那么就可以这么创建—— // 2.创建连接池 const pool mysql.createPool({host: 127.0.0.1,port: 3306,user: root,password: 123456,database: student }); 操作数据库 有了连接池之后我们就可以利用query()方法直接使用MySQL的语句。 比如我们想要在student下创建一张t_students表那么就可以先将建表的语句使用模板字符串保存起来—— const sql CREATE TABLE t_students (id int(11) UNSIGNED NOT NULL COMMENT 学号,name varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 姓名,age int(10) UNSIGNED NULL DEFAULT NULL COMMENT 年龄,score int(10) UNSIGNED NULL DEFAULT NULL COMMENT 分数,gender varchar(3) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 男 COMMENT 性别,comedate timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 入学时间,remark text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT 备注,PRIMARY KEY (id) USING BTREE) ENGINE InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci ROW_FORMAT Dynamic;query()方法的形参列表为MySQL命令字符串和回调函数就像下面这样—— pool.query(sql, (error, results, fields) {}) 在回调函数中error是错误信息通常由throw进行抛出而results则是数据库操作的结果。 pool.query(sql, (error, results, fields) {if (error) throw error;console.log(results); }) 至此整个连接的基本步骤已经全部完成下面在cmd中运行npm start不出意外是可以看到类似下面的成功创建信息的—— 使用Navicat Premium 16连接目标地址的数据库这里是本地打开student库就可以看到我们刚刚创建好的t_students表—— 对于其他的MySQL语句只需要替换sql字符串的内容然后效仿即可。  注意对于查询操作查询的结果是一个RowDataPacket数组的形式。 我们可以使用JSON的stringify()方法进行转化然后利用parse()方法进行解析这样就可以把结果转化成我们熟悉的JSON对象数组的形式—— 封装方法 纵观node.js操作MySQL的过程其实还是比较固定的——无非就是创建连接池和操作数据库这两步。因此我们可以将它们封装成一个方法。 首先建立一个db文件夹用于保存我们的数据库操作的js文件。connect.js用于连接池的创建tools.js用于数据库的操作。 在connect中添加下面的代码—— // 1导入mysql包 const mysql require(mysql) // 2 创建连接池 const pool mysql.createPool({host: xxx.xxx.xxx.xxx,port: 3306,user: xxx,password: xxx,database: xxx })module.exports pool 这里的3360是固定的而xxx需要根据使用者的不同替换成一些固定的代码比如连接地址、固定用户名密码和指定数据库。 最后使用module.exports进行匿名导出。 对于异步的数据库操作来说可以使用Promise进行封装。 query()方法的回调函数接收error和results参数对应Promise的rejected()和resolved()方法。 query()的第一个参数照例还是MySQL语句但是我们还需要在该参数和回调函数之间插入一个sqlParams参数该参数默认为空数组代表需要查询的数据。 对于查询语句来说实际上是将sql参数和sqlParams拼接起来的结果那么为什么不在sql参数中一次性传入完整的查询语句呢 这里假设我们在进行一次登录校验操作那么我们的sql参数大致是下面这样—— const sql SELECT username, password FROM table_login WHERE username admin AND password 123456其中admin和123456是用户输入的值。 看上去这个校验没有任何问题但是试想一种极端的情况假设用户在密码框输入下面的信息—— 123456 AND 1 1 那么我们的sql语句将会变成下面的样子—— const sql SELECT username, password FROM table_login WHERE username admin AND password 123456 AND 1 1这样的结果是非常危险的只要用户名输入正确那么无论密码是什么整个语句都将显示为可以查询到即可以登录。  所以为了避免这种情况我们应该让输入信息和固定的sql语句分离。 那么原sql语句可以改成这样—— const sql SELECT username, password FROM table_login WHERE username ? AND password ?而用户名和密码则保存在sqlParams中以数组的形式—— [admin, 123456] 由此就可以避免输入的安全性问题。 所以tools中的代码如下—— // 导入链接 const connect require(./connect)// MySQL操作 const execute (sql, sqlParams []) {return new Promise((resolve, rejected) {connect.query(sql, sqlParams, (error, results, fields) {if (error) return rejected(error);resolve(JSON.parse(JSON.stringify(results)));});}); }module.exports execute; 最后依然是匿名导出execute()方法。 结束语 本期内容到此结束。关于本系列的其他博客可以查看我的Node.js专栏和MySQL专栏。 在全栈领域博主也只不过是一个普通的萌新而已。本系列的博客主要是记录一下自己学习的一些经历然后把自己领悟到的一些东西总结一下分享给大家。 文章全篇的操作过程都是笔者亲自操作完成的一些定义性的文字加入了笔者自己的很多理解在里面所以仅供参考。如果有说的不对的地方还请谅解。 期待与你在下一期博客中再次相遇 ——放了挺久的【H2O2】
http://www.dnsts.com.cn/news/164793.html

相关文章:

  • 网站备案在哪里公司网站建设一条龙
  • 网站运营服务中心建设方案嘿呦一二呦
  • 石家庄平山网站推广优化大旺建设局网站
  • 武邑网站建设公司网站 多语言处理
  • 网站维护服务器好看的旅游网站模版
  • 免费的网站程序注册公司多少钱收费
  • 下沙经济开发区建设局网站wordpress第三方登陆插件
  • 做电子杂志的网站孝感市建设局网站
  • 怎么免费创建自己的网站平台江门有那几间公司做网站的
  • 外贸仿牌网站建设湖北网站推广技巧
  • 网站如何做服务器授权书如何查看自己的企业邮箱
  • 昆明电商网站开发p2p网站功能模块
  • 开发网站要注意什么问题网站建设项目需求分析流程
  • 竹子建站教程现在主流的网站开发语言
  • 毕业设计网站开发任务安排.net企业门户网站开发
  • 均安建网站seo成功案例分析
  • 做网站推广 需要ftp个人证书查询网全国联网
  • 网站开发需要哪些技术河南seo和网络推广
  • php建站大同网站建设企业
  • 门户网站做免费发布信息平台有哪些
  • 网站建设氺金手指排名11wordpress文章分类权限
  • 域名指向另一个网站html网页制作实训报告
  • 烟台北京网站建设WordPress图片分类代码
  • 南宁企业网站设计包装设计说明模板
  • 大连网站建设方案案例全网络品牌推广
  • 非你莫属做网站的卖网币起家的中小型企业网站建设与管理考试
  • 云南旅游网站开发公司莱芜雪野湖好玩吗
  • 香河家具城网站建设目标永安网站建设公司
  • 石门网站建设网店运营的基本流程
  • 单位网站建设汇报建一个大型网站需要多少钱