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

原文地址:https://www.cnblogs.com/EricZLin/p/9307599.html