2017-11-05 17 views
1

Nodejsでデータを挿入しようとしていますが、挿入コードに問題があります。データベースは正常に接続しますが、データは挿入されません。NodejsでMongoDbにデータを挿入できない

これは私のserver.jsです:

var mongo = require('mongodb').MongoClient 
global.db = null 
var sDatabasePath = 'mongodb://localhost:27017/kea' 
global.mongoId = require('mongodb').ObjectID 

/**************************************************/ 

var student = require(__dirname + '/student.js') 

/**************************************************/ 

mongo.connect(sDatabasePath, (err, db) => { 
    if (err) { 
     console.log('ERROR 003 -> Cannot connect to the database') 
     return false 
    } 
    global.db = db 
    console.log('OK 002 -> Connected to the database') 
    return true 
}) 

そして、これは私のstudent.jsです:

コンソールで
var student = {} 

/**************************************************/ 

student.saveStudent = (fcallback) => { 
    var jStudent = 
     { 
      "firstName": "Sarah", 
      "lastName": "Jepsen", 
      "age": 27, 
      "courses": [ 
       { 
        "courseName": "Web-development", 
        "teachers": [ 
         { 
          "firstName": "Santiago", 
          "lastName": "Donoso" 
         } 
        ] 
       }, 

       { 
        "courseName": "Databases", 
        "teachers": [ 
         { 
          "firstName": "Dany", 
          "lastName": "Kallas" 
         }, 
         { 
          "firstName": "Rune", 
          "lastName": "Lyng" 
         } 
        ] 
       }, 
       { 
        "courseName": "Interface-Design", 
        "teachers": [ 
         { 
          "firstName": "Roxana", 
          "lastName": "Stolniceanu" 
         } 
        ] 
       } 
      ] 
     } 

    global.db.collection('students').insertOne(jStudent, (err) => { 
     if (err) { 
      var jError = { "status": "error", "message": "ERROR -> student.js -> 001" } 
      console.log(jError) 
      return fcallback(true, jError) 
     } 
     var jOk = { "status": "ok", "message": "student.js -> saved -> 000" } 
     console.log(jOk) 
     return fcallback(false, jOk) 
    }) 
} 


module.exports = student 

私は唯一の「OK 002でデータベース接続メッセージを取得 - >データベースに接続してください。 私は、user.jsファイルからjErrorまたはjOkメッセージを返さないでください。

+0

ここで、student.saveStudentメソッドを呼び出していますか?メソッドを呼び出す必要があります。 – rdRahul

答えて

2

関数がinsert関数を呼び出さないため、関数を保存するにはsaveStudentメソッドを呼び出す必要があります。

var mongo = require('mongodb').MongoClient 
global.db = null 
var sDatabasePath = 'mongodb://localhost:27017/kea' 
global.mongoId = require('mongodb').ObjectID 

/**************************************************/ 

var student = require(__dirname + '/student.js') 

/**************************************************/ 

mongo.connect(sDatabasePath, (err, db) => { 
    if (err) { 
     console.log('ERROR 003 -> Cannot connect to the database') 
     return false 
    } 
    global.db = db 
    console.log('OK 002 -> Connected to the database'); 

    /*==================== Call the save function ==================*/ 
    //call the saveStudent to insert entry in database 
    student.saveStudent((err , resp) => { //your callback function 
      console.log("handle callback"); 
    }); 
    /*======================================*/ 

    return true 
}) 
+0

ありがとうございました。できます。 – codeDragon

+0

また、DBに挿入されているデータをコンソールに戻す方法はありますか? – codeDragon

+0

ちょうど(err)の代わりに、insertOneのコールバックを(err、result)として変更してください。その後、その結果を記録することができます – rdRahul

関連する問題