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

    }
});