node.js連線MongoDB資料成功之後,丟擲錯誤,db.collection is not a function
node.js程式碼,顯示連線資料庫成功,卻報錯db.collection is not a function
/** * Created by 村中長相較好的男子 on 2018/1/3. */ //引入mongodb模組,獲得客戶端物件 var MongoClient = require('mongodb').MongoClient; //連線字串 var DB_CONN_STR = 'mongodb://localhost:27017/gomall'; //定義函式表示式,用於操作資料庫並返回結果 var insertData = function(db, callback) { //獲得指定的集合 var collection = db.collection('users'); //插入資料 var data = [{_id:7,"name":'rose',"age":21},{_id:8,"name":'mark',"age":22}]; collection.insert(data, function(err, result) { //如果存在錯誤 if(err) { console.log('Error:'+ err); return; } //呼叫傳入的回撥方法,將操作結果返回 callback(result); }); }; //使用客戶端連線資料,並指定完成時的回撥方法 MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連線成功!"); //執行插入資料操作,呼叫自定義方法 insertData(db, function(result) { //顯示結果 console.log(result); //關閉資料庫 db.close(); }); });
程式碼確定是沒錯的,連資料庫成功,那麼問題就出在插入操作上,但插入的程式碼檢查了也是沒問題的。最後懷疑是模組出了問題。版本問題。
百度得知:這個錯誤是出在mongodb的庫中,在nodejs裡的寫法和命令列中的寫法不一樣,3.0的api已經更新和以前的版本不不一樣,我們在npm中沒指定版本號的安裝就預設安裝的是3.0版本。
下面是我在網上收集的一個3.0的方法,能不能用我沒試過,因為我用的是回滾版本的辦法用老版本來操作。
// 3.0 以上 高版本語法 const express = require('express'); const router = express.Router(); const mongoClient = require('mongodb').MongoClient; const assert = require('assert'); mongoClient.connect("資料庫地址", function(err, client) { assert.equal(null, err); // admin 為 資料庫名稱; const db = client.db("admin"); // PASS 為 資料庫裡面的某一個集合; const pass = db.collection('PASS'); pass.find({}).toArray(function(err, docs) { assert.equal(err, null); console.log(docs); }); }); module.exports = router;
沒準備好使用新版本在這裡只需要把node_modules中mongodb的版本換為2.3.33vision即可解決;
1、在專案中找到package.json檔案,這個檔案中記錄著我們專案的資訊及引用的模組,我們找到mongodb將其版本2.3.33,就像我圖片中那樣,我原來是3.0.33版本的,圖片是我改正後的版本
2、開啟命令列: npm install,更新一下,我們就可以使用2.3.33版本的mongodb模組了
這時候在執行一下程式碼操作就成功了,成功解決問題。
相關推薦
node.js連線MongoDB資料成功之後,丟擲錯誤,db.collection is not a function
node.js程式碼,顯示連線資料庫成功,卻報錯db.collection is not a function /** * Created by 村中長相較好的男子 on 2018/1/3. *
NodeJS | 連線mongodb資料庫成功之後報db.collection is not a function錯誤解決辦法(四)
在nodejs操作mongodb顯示資料庫連線成功之後突然報了db.collection is not a function錯誤,引起這個錯誤的原因是nodejs獲取資料庫表的API寫法不對。(正如NodeJS | 入門篇 (一)提到的,不同版本的API,使用規範有差別)。修改方式如下: var
【NodeJs】連線mongodb資料庫成功之後報db.collection is not a function錯誤
在nodejs操作mongodb顯示資料庫連線成功之後突然報了db.collection is not a function錯誤 nodejs程式碼如下: /** * Created by lenovoo on 2018/1/23. */ var express = requ
mongodb TypeError: db.collection is not a function 解決辦法
TypeError: db.collection is not a function 解決辦法 我也是自己踩坑(三個小時)剛剛出來的 在使用 MongoDB 資料庫 collect
jquery.min.js?v=2.1.4:4 Uncaught TypeError: (b.contentType || "").indexOf is not a function
前臺運行 gpo 前臺 add cati json log ont fun 前臺運行PUT時出現錯誤:jquery.min.js?v=2.1.4:4 Uncaught TypeError: (b.contentType || "").indexOf is not a fun
2018-10-18T16:22:46.566+0800 E QUERY [js] TypeError: db.addUser is not a function :
新版的MongoDB已經不支援addUser方法了。 改成createUser了。 db.createUser({user:"zz",pwd:"zz",roles:[{role:"root"}]) 建立一個數據庫新使用者用db.createUser()方法,如果使用者
layer.js錯誤Uncaught TypeError: i is not a function
最初是要寫一個管理後臺來著,專案中需要用到彈出層,但是沒有前端配合,我一個小PHP需要去寫這玩意,怎麼辦呢?查了一些資料,發現layer對我來說還行,文件寫的也比較完全,學習成本不高,就下決心用這個了。但是現實總是會給你潑冷水,剛引入就報了一個莫名其妙的錯誤。 吶,就是這個,我自己一個人在
2018-10-18T16:22:46.566+0800 E QUERY [js] TypeError: db.addUser is not a function :
新版的MongoDB已經不支援addUser方法了。 改成createUser了。 db.createUser({user:"zz",pwd:"zz",roles:[{role:"root"}]) 建立一個數據庫新使用者用db.createUser()方法,如果使用者
MongoDB建立管理員時報錯db.addUser is not a function
一開始是想用下面命令建立一個數據庫管理員的 db.addUser("paranoidyang","pwd") 結果卻報了下面的錯誤 後來谷歌了之後 ,才發現addUser這個方法在MongoD
js錯誤Uncaught TypeError: $(...).datagrid is not a function自己寫的並沒有錯但是一直報這個錯(詳解)
自己寫的jsp程式碼並沒有錯,如圖 但是在瀏覽器中一直報錯 如圖 這個問題搞了半天主要是因為 我引用了eaeasyUi的包 又引用了jquery的包 這就相當於十多歲的你和現在的你 都是一
node.js連線mongoDB資料庫
前面已經講了mongoDB資料庫的安裝和使用,今天來研究一下node.js中如何連線和使用mongoDB資料庫。 方法一:mongoose連線 一、配置mongose 增加mongose類庫 npm install mongoose 二、利用mongoose連線mongoDB
[MongoDB學習筆記-02] Node.js連線MongoDB的兩種方法
MongoDB Node.js驅動程式是被官方所支援的原生Node.js驅動程式,他是至今為止最好的實現, 並且得到了MongoDB官方的支援。MongoDB團隊已經採用MongoDB Node.js驅動程式作為標準方法。 npm install mong
node.js操作json檔案用es6的find方法報錯students.find is not function分享
報錯截圖如上 程式碼是node.js用fs操作json檔案,程式碼沒錯,但是一直報錯。。。 後來找了很久之後發現之前測試刪除功能時,把json檔案的students陣列刪了只剩一條資料了,json檔案把本來應該是陣列格式的資料,如下 : 結果是變成了這樣。。。。
Uncaught TypeError: $(...).tree is not a function at HTMLDocument.<anonymous> ,原因是確實js文件
ima ldo 原因 cti 項目 tree bubuko 技術 文件 不管惦記那個頁面都是上面的截圖內容,百度很多,只有一個說的是js有問題,後來經過一番查找,確實是js問題,如下圖 因為在git提交的時候不小心刪掉了, 點擊項目右鍵,出現下圖,
js報錯 Uncaught TypeError: xxxx.each is not a function
each err typeerror span xxx list 報錯 pan 使用 在處理ajax返回的json數組時錯誤的使用了 list.each(function(){ }); 實際上當遍歷json數組是應該使用
記js報錯: {(intermediate value)} is not a function at HTMLDocument.
使用立即執行函式的時候,chrome報這個錯誤; const url = { users: "xxx" } //沒有;導致報錯 (function () { //程式碼 })() js用func()方式呼叫函式,函式的定義有: 函式宣告,匿名函式,函式表示式; 立即執行函式
Vue表格複用,報錯"TypeError: _self.$scopedSlots.default is not a function"
場景:單頁面做可切換的多報表展示 如圖:每個報表戰術展示不同的資料項,需要隨select的切換,複用對應的table 這樣寫會報錯,並且切換後的table選項沒有達到預期效果 <el-main style="padding:10px;overflow-y:hidden"&g
JS中常見的 “函式名 is not a function” 錯誤
js中常見的錯誤,例如Uncaught TypeError: x is not a function 其原因除了函式本身有錯之外,還有一種很奇怪的情況:函式本身沒有錯,但是執行時就是不能正常執行。這種情況與javascript的特性有關:變數與函式宣告前置的優先順序。 首
value.getTime is not a function表單儲存後,再次進入編輯頁,不做修改直接儲存,日期便會報錯
#問題具體描述: 表單第一次儲存時,這時表單儲存可以直接成功;進入編輯頁,不修改任何資訊直接點選儲存,便會出現value.getTime is not a function的儲存; #問題解析: 1、第一次儲存時;日期的值是date型別;是可以直接儲存的; 2、第二次儲存時,日期的值
js報錯:****is not a function 的解決方法
1.最簡單的情況就是在html中使用的方法名與js方法名定義的不一致,仔細檢查就ok; 2.在使用js方法form.submit()出現這種報錯的時候,說明在提交表單中的元素中 有設定name=submit 的存在,使得系統混淆,造成報錯! 3.在表單中元素的name和id屬