• 在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();

  • 相关阅读:
    虚函数和纯虚函数
    MS CRM 2011中PartyList类型字段的实例化
    MS CRM 2011的自定义与开发(12)——表单脚本扩展开发(4)
    MS CRM 2011的自定义与开发(12)——表单脚本扩展开发(2)
    MS CRM 2011的自定义和开发(10)——CRM web服务介绍(第二部分)——IOrganizationService(二)
    MS CRM 2011 SDK 5.08已经发布
    MS CRM 2011 Q2的一些更新
    最近很忙
    Microsoft Dynamics CRM 2011最近的一些更新
    补一篇,Update Rollup 12 终于发布了
  • 原文地址:https://www.cnblogs.com/EricZLin/p/9307599.html
Copyright © 2020-2023  润新知