2017-08-08 47 views
0

image類型錯誤:無法讀取空的特性「集合」 ---節點insertData與MongoDB的

這是我的問題。現在的代碼如下

var mongoClient = require('mongodb').MongoClient; 
 
var db = 'mongodb://localhost:27017/lcl'; 
 

 
var insertData = function(db,callback){ 
 
\t var collection = db.collection('user'); 
 
\t var data = [{"name":"lcl","age":"23","sex":"男"},{"name":"王小貓","age":"22","sex":"女"}]; 
 
\t collection.insert(data,function(err,result){ 
 
\t \t if (err) { 
 
\t \t \t console.log(err); 
 
\t \t \t return; 
 
\t \t }; 
 
\t \t callback(result); 
 
\t }) 
 
} 
 
mongoClient.connect(db,function(err,db){ 
 
\t console.log("連接成功"); 
 
\t insertData(db,function(result){ 
 
\t \t console.log(result); 
 
\t \t db.close(); 
 
\t }) 
 
})

以上是我寫的代碼。 請幫我找到解決方案。

回答

0

執行某些操作嘗試是這樣的。檢查您的Db和集合名稱。

var mongoClient = require('mongodb').MongoClient; 
var db_config = 'mongodb://localhost:27017/conapp'; 

var insertData = function(db_config,callback){ 
var collection = db_config.collection('users'); 
var data = [{'username':'ddaaaa'}]; 
collection.insert(data,function(err,result){ 
    if (err) { 
     console.log(err); 
     return; 
    }; 
    callback(result); 
}) 
} 
mongoClient.connect(db_config,function(err,db_config){ 

insertData(db_config,function(result){ 
    console.log(result); 
    db_config.close(); 
}) 

}) 
+0

謝謝,午餐前我不知道代碼,我應該打開mongodb嗎? – lcl

+0

是的,我想你是提到打開mongodb shell,如果是這樣你必須在啓動localhost –

+0

之前運行mongoDb非常感謝!,我知道如何解決它,謝謝你 – lcl

0

從官方文檔:

callback (function) – this will be called after executing this method. The first parameter will contain the Error object if an error occured, or null otherwise. While the second parameter will contain the initialized db object or null if an error occured.

從邏輯上講,你必須檢查錯誤存在第一,然後纔在db

+0

謝謝,午餐前我不知道代碼,應該打開mongodb嗎? – lcl

相關問題