nodejs实现mysql数据库的简单例子
在MySQLWorkbench中创建table存储用户的tokenId信息:
use token; SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `allTokenIdForUser`; CREATE TABLE `allTokenIdForUser`( `address` varchar(255) DEFAULT '' COMMENT '虚拟货币地址', `tokenIdArray` varchar(255) DEFAULT '' COMMENT 'tokenId序列', PRIMARY KEY (`address`) )ENGINE = InnoDB; SET FOREIGN_KEY_CHECKS = 1;
其中:
SET FOREIGN_KEY_CHECKS = 1;启动外键约束,即表与表之间的关系 SET FOREIGN_KEY_CHECKS = 0;关闭外键约束 AUTO_INCREMENT = 0;写入0会被当做null值处理从而写入当前最大值的下一个值(即表定义中auto_increment的值),默认当主键为id时,因为这里的主键不是id,所以不设置 修改自增值的起始位置可以通过"alter table table_name AUTO_INCREMENT=xxxx;",但是这个值必须比当前表内数据的最大值要大,否则会修改不生效; 如果需要将自增值从0而不是1开始,可以通过设置线程级别的参数"SET sql_mode='NO_AUTO_VALUE_ON_ZERO';" 来实现
然后连接mysql,sql.js:
var mysql = require('mysql'); var connection = mysql.createConnection({ host : '127.0.0.1', user : 'root', password : 'yourpassword', port: '3306', database: 'token', }); connection.connect(); module.exports = connection;
然后在index.js中简单调用:
const db = require("./sql.js");//连接数据库 var address = '0x3455f15cc11f2e77c055f931a6c918ccc7c18fd8'; var queryString = "select * from allTokenIdForUser where address='" + address +"'"; db.query(queryString,(err, rows) => { if (err) { console.log('[SELECT ERROR] - ',err); }else { console.log('success'); console.log(rows); } });