Node js MySQL简单操作
//win7环境下node要先安装MySQL的相关组件(非安装MySQL数据库),在cmd命令行进入node项目目录后执行以下语句 //npm install mysql var mysql = require('mysql'); var connection = mysql.createConnection({ host : 'localhost', port : '3306', user : 'root', password : '123456', database : 'test' }); /* mysql.createConnection 数据库连接参数说明: host : 主机地址 (默认:localhost) user : 用户名 password : 密码 port : 端口号 (默认:3306) database : 数据库名 charset : 连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写) localAddress : 此IP用于TCP连接(可选) socketPath : 连接到unix域路径,当使用 host 和 port 时会被忽略 timezone : 时区(默认:'local') connectTimeout : 连接超时(默认:不限制;单位:毫秒) stringifyObjects : 是否序列化对象 typeCast : 是否将列值转化为本地JavaScript类型值 (默认:true) queryFormat : 自定义query语句格式化方法 supportBigNumbers : 数据库支持bigint或decimal类型列时,需要设此option为true (默认:false) bigNumberStrings : supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false) dateStrings : 强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false) debug : 开启调试(默认:false) multipleStatements : 是否许一个query中有多个MySQL语句 (默认:false) flags : 用于修改连接标志 ssl : 使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件 */ connection.connect(); //查询数据 var sel_sql = 'SELECT * FROM tablename'; connection.query(sel_sql, function (error, results, fields) { if(error){ console.log('[SELECT ERROR] - ',error.message); //throw error; return; } //fields为连接的数据库信息 //console.log(fields); console.log(results[0].name);//返回数据第一行中name字段的值 }); /* 执行查询返回结果 名称1 */ //插入数据 var add_sql = 'INSERT INTO tablename(id, name, age, type) VALUES(3,?,?,?)'; var add_params = ['名称3', 100, '测试']; connection.query(add_sql,add_params, function (error, results, fields) { if(error){ console.log('[INSERT ERROR] - ',error.message); //throw error; return; } console.log('--------------------------INSERT----------------------------'); //results.insertId新插入数据的id //console.log('INSERT ID:',results.insertId); console.log('INSERT ID:',results); console.log('-----------------------------------------------------------------\n\n'); }); /* 执行插入返回结果 --------------------------INSERT---------------------------- INSERT ID: OkPacket { fieldCount: 0, affectedRows: 1, insertId: 3, serverStatus: 2, warningCount: 0, message: '', protocol41: true, changedRows: 0 } ----------------------------------------------------------------- */ //更新数据 var update_sql = 'UPDATE tablename SET name = ?, age = ?, type = ? WHERE Id = ?'; var update_params = ['名称22', 120, '正式', 2]; connection.query(update_sql,update_params, function (error, results, fields) { if(error){ console.log('[UPDATE ERROR] - ',error.message); //throw error; return; } console.log('--------------------------UPDATE----------------------------'); //results.changedRows 改变表的条数,未改变返回0 console.log('UPDATE tablename',results.changedRows); console.log('-----------------------------------------------------------------\n\n'); }); /* 执行更新返回结果 --------------------------UPDATE---------------------------- UPDATE tablename 1 ----------------------------------------------------------------- */ //删除数据 var delete_sql = 'DELETE FROM tablename WHERE id = 3'; connection.query(delete_sql, function (error, results, fields) { if(error){ console.log('[DELETE ERROR] - ',error.message); //throw error; return; } console.log('--------------------------DELETE----------------------------'); //results.affectedRows 影响的条数,一条未删,返回0 console.log('DELETE tablename',results.affectedRows); console.log('-----------------------------------------------------------------\n\n'); }); /* 执行删除返回结果 --------------------------DELETE---------------------------- DELETE tablename 1 ----------------------------------------------------------------- */ //结束连接 connection.end();