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


    背景

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

    关系型——以mysql操作为例

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

    //引入模块
    var mysql=require('mysql');
    
    //定义连接对象connection
    var connection=mysql.createConnection({
        host:'192.168.*.*',
        user:'root',
        password:'******',
        database:'DB'
    });
    
    //连接
    connection.connect();
    
    //执行查询测试
    var sql='select * from sys_user';
    connection.query(sql,function(err,result){
        if(err){
            console.log('[select error]-',err.message);
            return;
        }
    
        console.log('-----select-------');
        console.log(result);
        console.log('------------------------');
    });
    
    //关闭连接
    connection.end();

    部分查询结果如下:

    这里写图片描述

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

    非关系型——以mongoDB为例

    安装驱动模块

    npm install mongodb

    插入操作

    var MongoClient = require('mongodb').MongoClient;
    var DB_CONN_STR = 'mongodb://192.168.*.*:27017/runoob';    
    
    
     var insertData = function(db, callback) {  
        // 连接到表 site
        var collection = db.collection('site');
        // 准备数据
        var data = [{"name":"Sherry","sex":"female","email":"xxxxx@163.com"},{"name":"Tom","sex":"male","email":"xxxx@163.com"}];
        collection.insert(data, function(err, result) { 
            if(err)
            {
                console.log('Error:'+ err);
                return;
            }     
            callback(result);
        });
    }
    
    MongoClient.connect(DB_CONN_STR, function(err, db) {
      console.log("连接成功!");
      insertData(db, function(result) {
        console.log(result);
        db.close();
      });
    });

    执行代码:

    这里写图片描述

    可以看到插入日志
    这里写图片描述

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

    这里写图片描述

    总结

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

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

  • 相关阅读:
    django-debug-toolbar的配置以及使用
    Django+telnetlib实现webtelnet
    Centos7 安装 telnet 服务
    Django+paramiko实现webshell
    Zabbix 历史数据存储到 Elasticsearch
    CA和自签证书
    linux加密算法与应用
    LVM拆除pv对应的磁盘
    目录迁移
    添加一个swap设备
  • 原文地址:https://www.cnblogs.com/saixing/p/6816844.html
Copyright © 2020-2023  润新知