插入Mongodb系列(新手)

时间:2016-10-15 20:09:48

标签: javascript node.js mongodb mongoose

我是nodejs和mongodb的新手。我正在尝试将newClass插入到类集合中。除了这个功能外,一切似乎都在起作用。它给出了500错误并且没有保存该类。

我检查了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);
}

3 个答案:

答案 0 :(得分:0)

你的createNewClass函数有一个语法错误,假设newClass变量是一个包含你要保存到新文档的所有key:value对的对象,你应该删除卷曲括号:

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

那就是说,你为你的路线发布的代码看起来并不像我的路线,所以你的转录可能还有其他错误。

答案 1 :(得分: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);
});

答案 2 :(得分:0)

在您的模型中将其更改为:

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

检查" Class"应该是架构模型对象。

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

这是基本的猫鼬方式。在猫鼬中,我们使用" insert"对于多个文档,但您也可以使用insert作为单个文档。