Node.js系列——(3)连接DB

释放双眼,带上耳机,听听看~!

背景

node.js,有人称之为运行在服务器端的JavaScript。以往我们使用JavaScript时,都是依赖后端查询数据库并返回数据,而JavaScript只需要展示即可。问题来了,就不能绕开后端直接查询数据库吗?答案是肯定的。

关系型——以mysql操作为例

node.js提供了mysql操作的驱动(模块),如果还未安装,需要执行
npm install mysql命令来安装。


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
1//引入模块
2var mysql=require('mysql');
3
4//定义连接对象connection
5var connection=mysql.createConnection({
6    host:'192.168.*.*',
7    user:'root',
8    password:'******',
9    database:'DB'
10});
11
12//连接
13connection.connect();
14
15//执行查询测试
16var sql='select * from sys_user';
17connection.query(sql,function(err,result){
18    if(err){
19        console.log('[select error]-',err.message);
20        return;
21    }
22
23    console.log('-----select-------');
24    console.log(result);
25    console.log('------------------------');
26});
27
28//关闭连接
29connection.end();
30

部分查询结果如下:

node.js连接mysql的其他增删改操作就不一一展示了,和查询操作类似,准备好sql语句,使用提供的响应的方法就ok了。

非关系型——以mongoDB为例

安装驱动模块


1
2
1npm install mongodb
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
1var MongoClient = require('mongodb').MongoClient;
2var DB_CONN_STR = 'mongodb://192.168.*.*:27017/runoob';    
3
4
5 var insertData = function(db, callback) {  
6    // 连接到表 site
7    var collection = db.collection('site');
8    // 准备数据
9    var data = [{"name":"Sherry","sex":"female","email":"xxxxx@163.com"},{"name":"Tom","sex":"male","email":"xxxx@163.com"}];
10    collection.insert(data, function(err, result) {
11        if(err)
12        {
13            console.log('Error:'+ err);
14            return;
15        }    
16        callback(result);
17    });
18}
19
20MongoClient.connect(DB_CONN_STR, function(err, db) {
21  console.log("连接成功!");
22  insertData(db, function(result) {
23    console.log(result);
24    db.close();
25  });
26});
27

执行代码:

可以看到插入日志

使用命令
mongodb/bin/mongo进入mongo客户端,可以看到刚刚插入的数据。

总结

从操作来看,node.js操作数据库还是比较简单的,底层实现依赖封装的mysql/mongodb模块。

从场景来看,node.js虽然可以实现大多数应用的功能,但并非要替代其他技术或产品,而是针对不同情况做出适合的选择。

给TA打赏
共{{data.count}}人
人已打赏
安全技术

哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用

2021-8-18 16:36:11

安全技术

C++ 高性能服务器网络框架设计细节

2022-1-11 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索