我是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);
}
答案 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作为单个文档。