亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

Nodejs使用Mongodb存儲與提供后端CRD服務詳解

2024-05-06 16:45:55
字體:
來源:轉載
供稿:網友

前言

眾所周知JS是腳本語言,腳本語言都需要一個解析器才能運行。對于寫在HTML頁面里的JS,瀏覽器充當了解析器的角色。而對于需要獨立運行的JS,NodeJS就是一個解析器。

每一種解析器都是一個運行環境,不但允許JS定義各種數據結構,進行各種計算,還允許JS使用運行環境提供的內置對象和方法做一些事情。例如運行在瀏覽器中的JS的用途是操作DOM,瀏覽器就提供了document之類的內置對象。而運行在NodeJS中的JS的用途是操作磁盤文件或搭建HTTP服務器,NodeJS就相應提供了fs、http等內置對象。

本文會把一個對象todo對象(有屬性{id,name})存儲到Mongodb,做查詢刪除的測試(Create Remove Delete = CRD)。這個測試包括使用Mongodb Shell,使用CallBack古典風格的訪問代碼,以及使用Await/Async的現代風格的代碼。完成這個這個驗證后,就可以掌握最初步的Mongodb了。

我使用的Nodejs是10.7 。操作系統環境為Mac OS X High Sierra。

準備環境

安裝和運行Mongodb Daemon

brew install mongodbmongodb

訪問驗證

首先執行Mongodb Shell:

mongo

輸入命令,查詢數據庫清單:

> show dbslocal  0.000GB

創建一個數據庫

use todos

(若database不存在,則會創建一個,此時若不做任何操作直接退出,則MongoDB會刪除該數據庫)

db.todos.insert({id:1,name:"reco"})db.todos.insert({id:2,name:"rita"})

查詢 :

db.todos.find(){ "_id" : ObjectId("5b727c0846b6c71a98d3af52"), "id" : 1, "name" : "reco" }{ "_id" : ObjectId("5b727c7046b6c71a98d3af53"), "id" : 2, "name" : "reta" }

刪除記錄:

db.todo.remove({id:1})

刪除數據庫

db.todo.drop()

使用nodejs方式訪問Mongodb

使用nodejs執行類似Shell對對象的CRD,代碼如下:

var MongoClient = require('mongodb').MongoClient;var url = "mongodb://localhost:27017/todos";MongoClient.connect(url, function(err, db) { if (err) throw err; console.log("Database created!"); var dbo = db.db("todos"); // var myobj = { id: 1, name: "reco" }; // dbo.collection("todo").insertOne(myobj, function(err, res) { // if (err) throw err; // console.log("1 document inserted"); // db.close(); // }); var myobj = [ { id: 1, name: 'reco'}, { id: 2, name: 'rita'}, ]; dbo.collection("todo").insertMany(myobj, function(err, res) { if (err) throw err; console.log("Number of documents inserted: " + res.insertedCount); dbo.collection("todo").find({}).toArray(function(err, result) { if (err) throw err; console.log(result); var myquery = { id: 1 }; dbo.collection("todo").deleteMany(myquery, function(err, obj) { if (err) throw err; console.log("document deleted"); db.close(); }); });  });})

代碼非常簡單,無需更多解釋。此代碼使用了mongodb模塊,需要首先安裝:

npm init -ynpm i mongodb --save

然后使用node index.js運行即可看到效果:

Database created!Number of documents inserted: 2[ { _id: 5b72ab9e3245f169ef5f43d2, id: 1, name: 'reco' }, { _id: 5b72ab9e3245f169ef5f43d3, id: 2, name: 'rita' } ]document deleted

利用高級異步特性

使用Await/Async特性,可以有效的減少代碼中的回調地獄現象。同樣的功能,可以使用這樣的代碼:

const MongoClient = require('mongodb').MongoClient;const connectionString = 'mongodb://localhost:27017';(async () => { const client = await MongoClient.connect(connectionString,  { useNewUrlParser: true }); const dbo = client.db('todos'); try {  var res = await dbo.collection('todo').insertMany(  [{id:1,name:"reco"}, {id:2,name:"rita"}]);  console.log("Number of documents inserted: " + res.insertedCount);  var r = await dbo.collection("todo").find().toArray()  console.log(r);  var myquery = { id: 1 }; var r = await dbo.collection("todo").deleteMany(myquery) console.log("document deleted"); } finally {  client.close(); }})().catch(err => console.error(err));

執行此代碼,輸出如下:

Number of documents inserted: 2
[ { _id: 5b72ae8a1c674a6ac1c5aa6e, id: 1, name: 'reco' },
  { _id: 5b72ae8a1c674a6ac1c5aa6f, id: 2, name: 'rita' } ]
document deleted

總結:

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久国产精品视频| 97国产真实伦对白精彩视频8| 日韩美女av在线| 成人av在线网址| 久久精品国产精品亚洲| 在线免费看av不卡| 国产原创欧美精品| 亚洲性69xxxbbb| 欧美一区二区视频97| 亚洲第一级黄色片| 亚洲激情第一页| 久久国产精品首页| 成人网在线免费观看| 91av在线不卡| 成人a级免费视频| 成人黄色免费看| 久久躁日日躁aaaaxxxx| 亚洲天堂男人天堂女人天堂| 亚洲天堂精品在线| 久久精品99久久久香蕉| 亚洲激情成人网| 国产精品旅馆在线| 国产欧美 在线欧美| 国产又爽又黄的激情精品视频| 少妇精69xxtheporn| 亚洲摸下面视频| 日产精品99久久久久久| 国产精品麻豆va在线播放| 91av成人在线| 91热福利电影| 国产亚洲欧美一区| 日韩视频在线一区| 视频直播国产精品| 亚洲国产精品福利| 日韩在线欧美在线| 91在线精品视频| 97**国产露脸精品国产| 国产精品永久免费在线| 中文字幕欧美精品在线| 国产精品99久久久久久久久久久久| 91久久久久久久| 亚洲国产成人精品电影| 国产精品69久久久久| 欧美日韩中文在线| 日韩av资源在线播放| 国产精品视频男人的天堂| 亚洲视频在线观看免费| 夜色77av精品影院| 国产成人午夜视频网址| 日韩中文字幕在线观看| 555www成人网| 久久99热精品这里久久精品| 午夜免费日韩视频| 亚洲最大福利视频网| 欧美夫妻性生活xx| 91成人免费观看网站| 精品久久久av| 日韩av最新在线观看| 5566日本婷婷色中文字幕97| 日韩中文字幕免费看| 日韩av一区在线观看| 国产原创欧美精品| 国产成人精品视| 国产成人精品综合| 岛国精品视频在线播放| 亚洲综合社区网| 亚洲一区二区久久久久久| 亚洲男人天堂久| 欧美日韩国产一区二区| 最近日韩中文字幕中文| 97成人超碰免| 欧美激情视频给我| 日韩欧美一区二区三区| 亚洲最大福利网站| 欧美一级片一区| 精品视频中文字幕| 中文字幕日韩av综合精品| 国产91网红主播在线观看| 国产精品久久久久一区二区| 亚洲精品一区av在线播放| 欧美激情中文字幕乱码免费| 国产欧美va欧美va香蕉在线| 国产日韩视频在线观看| 精品国产91久久久| 国产精品久久久久久av下载红粉| 成人av.网址在线网站| 久久久久久久香蕉网| 亚洲欧美日韩天堂一区二区| 欧美午夜女人视频在线| 亚洲视频在线免费观看| 国产精品激情av在线播放| 日韩人在线观看| 亚洲国产精品va在线观看黑人| 国产91网红主播在线观看| 亚洲一区二区在线| 伦理中文字幕亚洲| 亚洲天堂网在线观看| 亚洲女人天堂av| 91精品国产九九九久久久亚洲| 中文亚洲视频在线| 亚洲视频网站在线观看| 一区二区三区www| 96pao国产成视频永久免费| 91精品国产高清自在线| 亚洲一区二区在线播放| 国产在线视频一区| 日韩禁在线播放| 另类天堂视频在线观看| 97在线免费观看视频| 欧美黄色三级网站| 91精品国产自产91精品| 国产精品69精品一区二区三区| 亚洲区免费影片| 国产一区二区香蕉| 亚洲一区中文字幕在线观看| 精品成人av一区| 久久久久久久香蕉网| 91在线|亚洲| 亚洲丝袜一区在线| 亚洲国产婷婷香蕉久久久久久| 日韩精品亚洲精品| 日本午夜精品理论片a级appf发布| 午夜精品久久久久久久男人的天堂| 亚洲人成网站999久久久综合| 在线一区二区日韩| 亚洲人成网站色ww在线| 理论片在线不卡免费观看| 97国产精品视频| 秋霞av国产精品一区| 亚洲日本欧美日韩高观看| 国产精品美女www| 国产精品青青在线观看爽香蕉| 高清欧美电影在线| 日韩美女写真福利在线观看| 午夜精品一区二区三区在线视频| 97av在线视频| 日韩电影免费观看在线| 久久精品国产一区| 中文字幕日韩精品在线观看| 亚洲爱爱爱爱爱| 福利一区福利二区微拍刺激| 欧美大片大片在线播放| 亚洲美女av黄| 亚洲国产精品嫩草影院久久| 91精品久久久久久久久久久| 日韩资源在线观看| 欧美亚洲国产另类| 亚洲欧美日韩一区二区三区在线| 久久亚洲欧美日韩精品专区| 亚洲男女自偷自拍图片另类| 亚洲男人天堂手机在线| 国产精品久久久久久久久久久久久久| 亚洲视频一区二区三区| 亚洲欧美中文日韩v在线观看| 国产精品男人爽免费视频1| 成人免费高清完整版在线观看| 亚洲精品综合久久中文字幕| 国产精品久在线观看| 国产日韩欧美日韩| 中文字幕av一区二区三区谷原希美| 欧美美女操人视频| 另类专区欧美制服同性| 岛国av一区二区在线在线观看| 伊人一区二区三区久久精品|