突然想研究研究怎么用nodejs操作数据库,目前自己机器上刚好装了mysql,这个数据库我也比较熟悉,所以就找了些网上的教程跟着学习一下怎么操作。
首先在项目目录里需要安装 node-mysql 模块:
在mysql里创建一个测试数据库 node_test
,然后建个测试用的数据表 mytable
:
1 2 3 4 5 6 CREATE TABLE `node_test`.`mytable` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , `firstname` VARCHAR( 20 ) NOT NULL , `lastname` VARCHAR( 20 ) NOT NULL , `message` TEXT NOT NULL ) ENGINE = MYISAM ;
新建一个 database.js 文件,测试基本功能:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 var mysql = require ('mysql' ); var client = mysql.createConnection ({ host : '127.0.0.1' , user : 'root' , password : 'root' , port : '3306' , database : 'node_test' }); client.connect (); client.query ( 'SELECT * FROM mytable' , function (err, results, fields ) { if (err) { console .log ('[SELECT ERROR] - ' , err.message ); return ; } if (results) { for (var i = 0 ; i < results.length ; i++) { console .log ('%d\t%s\t%s' , results[i].id , results[i].name , results[i].message ); } } } ); client.end ();
运行文件可以看到显示结果:
1 2 3 >> node database.js 1 user1 hello user1 2 user2 hello user2
增删改 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 var addSql = 'INSERT INTO node_test(id, name, message) VALUES(0,?,?)' ;var addSqlParams = ['Virola' , 'Hello Virola' ];client.query (addSql, addSqlParams, function (err, result ) { if (err){ console .log ('[INSERT ERROR] - ' , err.message ); return ; } console .log ('-------INSERT----------' ); console .log ('INSERT ID:' , result); console .log ('#######################' ); }); client.end ();
1 2 3 4 5 6 7 8 9 10 11 12 13 var updateSql = 'UPDATE mytable SET name = ?,message = ? WHERE id = ?' ;var updateSqlParams = ['newuser' , 'Hello World' , 2 ];client.query (updateSql, updateSqlParams, function (err, result ) { if (err) { console .log ('[UPDATE ERROR] - ' , err.message ); return ; } console .log ('----------UPDATE-------------' ); console .log ('UPDATE affectedRows' , result.affectedRows ); console .log ('******************************' ); });
1 2 3 4 5 6 7 8 9 10 11 12 var delSql = 'DELETE FROM mytable WHERE id = 7' ;client.query (delSql, function (err, result ) { if (err) { console .log ('[DELETE ERROR] - ' , err.message ); return ; } console .log ('-------------DELETE--------------' ); console .log ('DELETE affectedRows' , result.affectedRows ); console .log ('&&&&&&&&&&&&&&&&&' ); });