zoukankan      html  css  js  c++  java
  • 在nodejs中操作数据库(MongoDB和MySQL为例)

    一、使用nodejs操作MongoDB数据库

    ①使用官方的mongodb包来操作

    ②使用第三方的mongoose包来操作(比较常用)

    // 首先必须使MongoDB数据库保持开启状态
    // npm下载mongoose包并引入
    var mongoose=require('mongoose');
    // 连接MongoDB数据库
    mongoose.connect('mongodb://localhost/test',{useMongoClient:true});
    mongoose.Promise=global.Promise;
    // 创建一个模型,即设计数据库
    var Cat=mongoose.model('Cat',{name:String});
    // 实例化一个Cat
    var kitty=new Cat({name:'hello world'});
    // 持久化保存kitty实例
    kitty.save(function(err,ret){
        if(err){
            console.log(err)
        }else{
            console.log(ret)
        }
    })

    ③使用mongoose操作MongoDB数据库例子:

    • 基本工作:开启MongoDB服务,连接数据库,npm安装包并引包、连接数据库、设计文档结构、将文档发布为模型
    // 首先必须使MongoDB数据库保持开启状态
    // npm下载mongoose包并引入
    var mongoose=require('mongoose');
    // 连接MongoDB数据库
    mongoose.connect('mongodb://localhost/test');
    // 设计文档结构
    var Schema=mongoose.Schema;
    var userSchema=new Schema({
        username:{type:String,required:true},
        password:{type:String,required:true},
        email:{type:String},
    });
    // 将文档发布为模型mongoose.model()方法
    /**
     * 第一个参数:传入一个大写名词字符串用来表示数据库名,
     * mongoose会自动将大写名词的字符串生成小写复数的集合名称
     * 例如这里的User会变成users集合名称
     * 第二个参数:架构schema
     */
    var User= mongoose.model('User',userSchema)
    // 实例化一个User
    var admin=new User({
        username:'admin',
        password:'123456',
        email:'admin@admin.com'
    });
    // 持久化保存admin实例
    admin.save(function(err,ret){
        if(err){
            console.log('保存失败')
        }else{
            console.log('保存成功');
            console.log(ret);
        }
    })

    • 查询数据(查)
    // 查询所有的数据
    User.find(function(err,ret){
        if(err){
            console.log('查询失败')
        }else{
            console.log(ret)
        }
    });
    //按条件查询所有
    User.find({username:'eric'},function(err,ret){
        if(err){
            console.log('查询失败')
        }else{
            console.log(ret)
        }
    })
    // 按条件查询单个
    User.findOne({username:'eric'},function(err,ret){
        if(err){
            console.log('查询失败')
        }else{
            console.log(ret)
        }
    });
    • 更改数据(改)
    // 根据条件更新所有
    User.update({username:'eric'},function(err,ret){
        if(err){
            console.log('更新失败')
        }else{
            console.log(ret)
        }
    });
    // 根据指定条件更新一个
    User.findOneAndUpdate({username:'eric'},function(err,ret){
        if(err){
            console.log('更新失败')
        }else{
            console.log(ret)
        }
    });
    // 根据id更新一个
    User.findByIdAndUpdate('5a12321431234124141',{password:'123'},function(err,ret){
        if(err){
            console.log('更新失败')
        }else{
            console.log(ret)
        }
    });
    • 删除数据(删)
    // 根据条件删除所有
    User.remove({username:'eric'},function(err,ret){
        if(err){
            console.log('删除失败')
        }else{
            console.log(ret)
        }
    });
    // 根据指定条件删除一个
    User.findOneAndRemove({username:'eric'},function(err,ret){
        if(err){
            console.log('删除失败')
        }else{
            console.log(ret)
        }
    });
    // 根据id删除一个
    User.findByIdAndRemove('5a12321431234124141',{password:'123'},function(err,ret){
        if(err){
            console.log('删除失败')
        }else{
            console.log(ret)
        }
    });

    二、使用nodejs操作MySQL数据库

    ①npm安装包mysql----创建连接----连接数据库----执行数据操作(比如:增查删改)----关闭连接

    ②举例:

    • 数据库和数据表

     

    • 查询操作
    // npm 安装并引入mysql包
    var mysql=require('mysql');
    // 创建连接
    var connection=mysql.createConnection({
        host:'localhost',
        user:'root',
        password:'0000',
        database:'test'
    })
    // 连接数据库(打开冰箱门)
    connection.connect();
    // 执行数据库操作(把大象放到冰箱)
    // 注意:无论是查询,修改,增加,还是删除,就在第一个参数里面写SQL语句即可
    // 查询
    connection.query('SELECT * FROM `users`',function(error,results,fields){
        if(error) throw error;
        console.log('the solution is:',results);
    });
    // 关闭连接(关闭冰箱门)
    connection.end();

    • 增加操作
    // npm 安装并引入mysql包
    var mysql=require('mysql');
    // 创建连接
    var connection=mysql.createConnection({
        host:'localhost',
        user:'root',
        password:'0000',
        database:'test'
    })
    // 连接数据库(打开冰箱门)
    connection.connect();
    // 执行数据库操作(把大象放到冰箱)
    // 注意:无论是查询,修改,增加,还是删除,就在第一个参数里面写SQL语句即可
    // 增加 
    connection.query('INSERT INTO users VALUES(11,"admin",0,"1994-1-1","000000000")',function(error,results,fields){
        if(error) throw error;
        console.log('the solution is:',results);
    });
    // 查询
    connection.query('SELECT * FROM `users`',function(error,results,fields){
        if(error) throw error;
        console.log('the solution is:',results);
    });
    // 关闭连接(关闭冰箱门)
    connection.end();

  • 相关阅读:
    Jmeter后置处理器之Json提取器
    Jmeter体系结构-事务控制器
    一款免费的自动化测试工具:AirtestProject
    jsonpath-rw处理json对象
    MySQL常用SQL
    Git使用
    charles的mock功能
    Django项目之blog表设计(二)
    Django小项目之blog(一)
    selenium无界面浏览器,访问百度搜索为例
  • 原文地址:https://www.cnblogs.com/EricZLin/p/9307599.html
Copyright © 2011-2022 走看看