nodejs使用MySQL

来源:互联网 发布:炼数成金 大数据分析师 编辑:程序博客网 时间:2024/06/06 17:07

一、搭建环境
nodejs和MySQL的安装就不说了,安装好后,通过npm安装MySQL模块。
在自己nodejs项目的根目录,运行
npm install mysql --save
其中,--save是将mysql模块写入package.json文件的依赖模块配置中,也可以不添加此选项。

二、创建数据库
运行下面的sql语句,可创建一个简单的数据库和user表
创建数据库tsnode

?
1
CREATEDATABASE`tsnode`;

创建表user

?
1
2
3
4
5
6
7
8
9
10
CREATETABLE`user` (
`userid`int(11)NOTNULLAUTO_INCREMENT,
`username`varchar(45)DEFAULTNULLCOMMENT '账号',
`password`varchar(45)DEFAULTNULLCOMMENT '密码',
`userdesc`varchar(145)DEFAULTNULLCOMMENT '备注',
`birthday` datetime DEFAULTCURRENT_TIMESTAMPCOMMENT '生日',
`logincount`int(11)DEFAULT'0'COMMENT '登录次数',
PRIMARYKEY(`userid`),
UNIQUEKEY`iduser_UNIQUE` (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULTCHARSET=utf8 COMMENT='table for user manage';

三、项目js文件中引入mysql模块并操纵数据库
1、连接数据库并查询,将返回数据从控制台输出

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
varmysql = require('mysql');
varconnection = mysql.createConnection({
    'host':'localhost',
    'user':'root',
    'password':'passoo',
    'port':'3307',
    'database':'tsnode'
});
 
connection.connect();
connection.query('select * from user limit 0,10',function(err, rows, fields){
    if(err)throwerr;
    console.log(rows); // 输出查询结果JSON
    varbirthday = rows[0].birthday;
    console.log(birthday.getTime()); // 输出生日
    console.log(fields); // 输出字段属性
});
connection.end();

2、使用连接池

?
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
31
32
33
34
35
36
37
38
39
40
41
/**
 * 使用连接池
 */
varmysql = require('mysql');
varpool = mysql.createPool({
    'host':'localhost',
    'user':'root',
    'password':'passoo',
    'port':'3307',
    'database':'tsnode'
});
 
pool.getConnection(function(err, connection){
    console.log('1 connected!');
    // 执行SQL语句
    connection.query("INSERT INTO `tsnode`.`user` (`username`, `password`, `userdesc`) VALUES ('realwall', 'passoo', 'This is user desc2')",function(err, result){
        if(err){
            connection.rollback(function(){
                throwerr;
            });
        }
        console.log('connection 1 insert');
        console.log(result);
        // 将连接释放到连接池
        connection.release();
        console.log('connection 1 released');
    });
});
 
pool.getConnection(function(err, connection){
    if(err)throwerr;
    console.log('2 connected!');
    // 执行SQL语句
    connection.query('select * from user limit 0,10',function(err, rows){
        console.log('connection 2 query');
        console.log(rows);
        // 将连接释放到连接池
        connection.release();
        console.log('connection 2 released');
    });
});

 
0 0
原创粉丝点击