2016-10-15 14 views
0

私はnodejsとmongodbを初めて使っています。 newClassをクラスコレクションに挿入しようとしています。この機能以外はすべて動作しているようです。それは500エラーを与え、クラスを保存しません。Mongodbコレクションへの挿入(初心者)

mongodbドキュメントをチェックしたところ、正しいと思われました。誰かが私を正しい方向に向けることができますか?

ルート

Class.createNewClass(newClass, function(err){ 
    if (err){ 
     console.log(err); 
     res.send(err); 
    } else { 
     console.log('Class saved.") 
    } 
}) 

モデル

module.exports.createNewClass = function(newClass, callback){ 
    Class.insert({newClass}, callback); 
} 

答えて

0

あなたcreateNewClass関数の構文エラーがnewClass変数はすべてのキーを含むオブジェクトであると仮定すると、あります:valueのペアにあなたは」新しい文書に保存し直す場合は、中括弧を削除する必要があります。

module.exports.createNewClass = function(newClass, callback){ 
    Class.insert(newClass, callback); 
} 

あなたのルートに投稿したコードは、私のルートによく似ていないので、あなたの転写が明らかにならない他のエラーがある可能性があります。

0

私はアプリの全体的な構造についてはっきりしていませんが、データベースに新しいクラスを挿入できる非常に簡単なExpressアプリケーションがあります。お使いのモデルで

var express = require('express'); 
var bodyParser = require('body-parser'); 

var mongodb = require('mongodb'); 
var app = express(); 
app.use(bodyParser.json()); 

var MongoClient = require('mongodb').MongoClient; 
var db; 

// Initialize connection once 
MongoClient.connect("mongodb://localhost:27017/school", function(err, database) { 
    if(err) throw err; 

    db = database; 

    // Start the application after the database connection is ready 
    app.listen(3000); 
    console.log("Listening on port 3000"); 
}); 

app.post('/class', function(req,res) { 
    var collection = db.collection('classes'); 
    var newClass = req.body; 
    console.log(req.body); 
    collection.insert(newClass); 
    res.json(newClass); 
}); 
0

のように変更します。「クラス」は、スキーマのモデルオブジェクトでなければならないこと

module.exports.createNewClass = function(newClass, callback){ 
     Class.collection.insert(newClass, callback); 
}; 

チェックを。

module.exports.createNewClass = function(newClass, callback){ 
     new Class(newClass).save(callback); 
    }; 

これは基本的なマングース方法です。 mongooseでは、複数のドキュメントに「挿入」を使用しますが、単一のドキュメントに挿入することもできます。