通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,下面本篇文章就来给大家介绍下如何通过NodeJS来操作 MySQL 数据库,希望对大家有所帮助。
nodejs连接MySQL数据库的步骤:
安装 node-mysql:$ npm install mysql
我们需要让NodeJS支持MySQL,则需要将MySQL模块添加到系统支持库。
连接数据库:
引入并配置修改数据库用户名密码及数据库名var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'test'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution',
function(error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});
数据库连接参数: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的配置文件
注:如果本地数据库连接失败,报错10061,说明本地MySQL服务未启动,在我的电脑右键服务下启动mysql
抛出源码,蹬蹬蹬~~~~var Mysqlconnect = require('mysql');
var sql = Mysqlconnect.createConnection({
host:'localhost',
user:'root',
password:'xxxx',
database:'trip'
});
sql.connect();
/* GET users listing. */
router.get('/', function(req, res, next) {
sql.query("select * from tour",[],function(err,data){
console.log(data);
res.send(data);
});
});
// 登录
router.post('/login', function(req, res, next) {
console.log(req.body.username);
sql.query("select * from user_app where username = ? and password = ?",
[req.body.username,req.body.password],function(err,data){
console.log(data);
if(err){
console.log(err);
return;
}
res.send(data);
});
});
// 注册
router.post('/register', function(req, res, next) {
console.log(req.body.username);
sql.query("insert into user_app (username,password,phone) value (?,?,?)",
[req.body.username,req.body.password,req.body.phone],function(err,data){
console.log(data);
if(err){
console.log(err);
return;
}
res.json({res_code:0});
});
});