Вставка в коллекцию Mongodb (новичок)

Я новичок в nodejs и mongodb. Я пытаюсь вставить класс . createNewClass ( NewClass , функция ( ERR ) { если ( ERR ) { консоль . журнал ( ERR ); Рез . послать ( ERR ); } еще { консоль . журнал ( " Class сохранены . «) } }) в коллекцию классов. Кажется, что все работает, кроме этой функции. Он дает 500 ошибок и не сохраняет класс.

Я проверил документы mongodb, и это показалось правильным. Может ли кто-нибудь указать мне в правильном направлении?

маршруты

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

модель

newClass

javascript,node.js,mongodb,mongoose,

0

Ответов: 3


0

В вашей функции createNewClass существует синтаксическая ошибка, предполагая, что newClassпеременная является объектом, который содержит все пары ключей: значения, которые вы сохраняете в новом документе, вы должны удалить фигурные скобки:

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);
    };

Это основной способ мангуста. В мангусте мы используем «вставить» в несколько документов, но вы также можете использовать вставку для одного документа.

JavaScript, Node.js, MongoDB, мангуст,
Похожие вопросы