博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node-webkit连接mysql
阅读量:7227 次
发布时间:2019-06-29

本文共 4352 字,大约阅读时间需要 14 分钟。

一、安装node.js mysql驱动库

  node-webkit里面没有mysql模块的,我们需要安装mysql模块。我们可以使用npm(Node package manager)进行安装。这里使用到的版本为:"2.0.0-rc2"。安装步骤如下:

  1、打开cmd输入命令:npm install -g mysql 回车,下载完成之后效果图如下:

  mysql下载的目录为C:\Users\user\AppData\Roaming\npm\node_modules

二、编写相关代码

  1、创建index.html文件,文件内容如下:

1  2  3 Demo   4 
5 6 7 8 name: password:
9
10 11 12

  2、创建script.js文件,文件内容如下:

1 var mysql = require('./mysql');//加载数据库模块  2 var TEST_DATABASE = 'nodejs_mysql_test';//数据库名  3 var TEST_TABLE = 'user';//表名  4 var client ;  5 var infodiv;  6   7 window.onload = function (){      8     client = mysql.createConnection({    9         host : '127.0.0.1',  //主机地址 10         user : 'root',  //数据库用户名 11         password : '123456'//数据库密码 12     });  13     client.query('USE '+TEST_DATABASE);//使用该数据库 14     infodiv = document.getElementById("info");  15        queryAll(); //查询所有数据 16 } 17   18  //日期格式转换 19 Date.prototype.Format = function(fmt)  20 {  21   var o = {  22     "M+" : this.getMonth()+1,                  //月份  23     "d+" : this.getDate(),                     //日  24     "h+" : this.getHours(),                    //小时  25     "m+" : this.getMinutes(),                  //分  26     "s+" : this.getSeconds(),                  //秒  27     "q+" : Math.floor((this.getMonth()+3)/3), //季度  28     "S"  : this.getMilliseconds()               //毫秒  29   };    30   if(/(y+)/.test(fmt))  31     fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));  32   for(var k in o)   33     if(new RegExp("("+ k +")").test(fmt))   34   fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));  35   return fmt;  36 } 37  38 //添加数据 39 function add(){ 40     var name =  document.getElementById("name"); 41     var password = document.getElementById("password"); 42     var date = (new Date()).Format("yyyy-MM-dd hh:mm:ss"); 43     client.query('INSERT INTO '+TEST_TABLE+' SET username = ?, password = ?, created = ?',[name.value, password.value, date],function(err, results){ 44         if(results.insertId != null){ 45             alert("添加成功"); 46           }//返回记录id 47     }); 48     infodiv.innerHTML="";  49     queryAll(); 50 } 51  52 //查询所有数据 53 function queryAll(){ 54      client.query('select * from  '+TEST_TABLE,function(err, results){  55         var info="id    username      password    createdate
"; 56 for(var i = 0; i < results.length; i++){ 57 var person = results[i]; 58 var date=new Date(person.created); 59 var dateStr = date.Format("yyyy-MM-dd"); 60 info += person.id + "    " + person.username + "    " + person.password + "          " +dateStr + "        
delete
"; 61 } 62 infodiv.innerHTML=info; 63 }); 64 } 65 66 //删除数据 67 function toremove(id){ 68 if(confirm("确定删除?")){ 69 client.query("delete from user where id = ?", [ id ], function(err, results) {
//删除id为1的记录 70 var str = JSON.stringify(results); 71 /**result 如下的信息 72 { 73 fieldCount: 0, 74 affectedRows: 1, 75 insertId: 0, 76 serverStatus: 2, 77 warningCount: 0, 78 message: '', 79 protocol41: true, 80 changedRows: 0 81 } 82 */ infodiv.innerHTML=""; 83 queryAll(); 84 }); 85 } 86 } 87 88 //修改数据 89 /**client.query("update user set password = ? where id = ?", [ "123456", 4 ], function(err, results) {//修改id为1的记录的password 90 var str = JSON.stringify(results); 91 alert(str); 92 // alert(results); 93 /** result 如下的信息 94 { fieldCount: 0, 95 affectedRows: 1, 96 insertId: 0, 97 serverStatus: 2, 98 warningCount: 0, 99 message: '(Rows matched: 1 Changed: 1 Warnings: 0',100 protocol41: true,101 changedRows: 1 102 }103 104 }); */105 106 client.end();//关闭连接

  3、package.json文件,文件内容如下:

1 {2   "name": "nw-demo",3   "main": "index.html"4 }

  4、将C:\Users\user\AppData\Roaming\npm\node_modules目录下的mysql目录拷贝到与package.jsonindex.html等文件的相同目录,然一起压缩成zip包,重命名为mysql.nw。打包后的目录结构如下图所示:

5、将这个压缩文件运行,可进行简单的添加,删除与查询所有的功能。因为修改的功能有些繁琐,这里就没有实现。但是script.js已经有相关的修改代码,可以根据那些代码进行实现。运行后的界面如下图所示:

 

转载于:https://www.cnblogs.com/always-online/p/3518862.html

你可能感兴趣的文章
一次和前端的相互甩锅的问题记录
查看>>
纯OC实现iOS DLNA投屏功能了解一下
查看>>
RxJava -- fromArray 和 Just 以及 interval
查看>>
LC #75 JS
查看>>
js正则验证代码库
查看>>
常见面试题—css实现垂直水平居中
查看>>
lc682. Baseball Game
查看>>
重学前端-css选择器
查看>>
iOS开发之扫描二维码
查看>>
Android黑科技: 快速找到view所在的xml文件
查看>>
linux分区方案
查看>>
003-Java技术体系
查看>>
超轻量模板引擎
查看>>
JavaScript 复习之 Object对象的相关方法
查看>>
JAVA之流程控制语句
查看>>
Spring Boot(1)
查看>>
Winodws 10 美化与调优
查看>>
apache安装及多域名解析及域名代理
查看>>
什么是自动化运维 ? 自动化运维的设计思路以及实战
查看>>
Python练习实例100例(持续更新中)
查看>>