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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM