当我尝试向db插入新帖子时,我在mongodb中进行基本的crud操作我在post man中收到一条消息,因为Test不是函数。
我的路由器功能如下。
function showApprove()
{
value = confirm("Approve this document?");
if (value == true)
{
document.getElementById("formId").submit();//please set id attribute to your form.
}
else
{
}
}
我的架构如下。
router.route('/createtests').post(function (req, res, next) {
var Test = new Test(req.body);
postTest(Test, function (data) {
res.json({'message': 'The test created sucessfully'});
});
});
var postTest = function(test, cb){
Test.save(function(err,data){
cb(data);
});
};
我得到的回复如下
var TestSchema = common.Schema({
title : String,
testCreator : String,
datePosted : {
type: Date,
default: Date.now
},
totalQuestions : Number,
totalTime : Number,
numberOfPeopleTaking : Number,
dateOfTest : Date,
marksPerQuestions : Number,
imageUrl : String,
testType : String,
});
var Test = common.conn.model('Test', TestSchema);
console.log(typeof Test);// logging as function
console.log(Test);// logging full model with schema
module.exports = Test;
答案 0 :(得分:1)
在您的函数postTest
中,test
使用“t
”并保存为“T
”(Test.save()
):大写/小写错字。这就是造成你问题的原因。
var postTest = function(test, cb){
test.save(function(err,data){ //see the change here 'test' instead of 'Test'
cb(data);
});
};
另外,将common.conn.model
更改为common.model
var Test = common.model('Test', TestSchema);
修改强>
您使用Test
作为variable
名称和model
名称。将var更改为test
。它应该解决你的问题。
router.route('/createtests').post(function (req, res, next) {
var test = new Test(req.body); //See the change here. 'test' instead of 'Test'
postTest(test, function (data) { //pass 'test'
res.json({'message': 'The test created sucessfully'});
});
});
答案 1 :(得分:0)
您需要以正确的方式编写代码。
const Test = require('../models/Test'); // path
var test = new Test({
email: req.body.title,
password: req.body.testType
});
test.save(function(err,data){
cb(data);
});
答案 2 :(得分:0)
我认为您将“测试”的实例作为参数传递,但您使用Test
作为实例而不是test
。
你可以尝试这种希望。因为刚刚使用虚拟记录对其进行了测试,并且它有效并且如果它没有意义则意味着您的猫鼬模式存在问题
router.route('/createtests').post(function (req, res, next) {
var Test = new Test(req.body);
postTest(Test, function (data) {
res.json({'message': 'The test created sucessfully'});
});
});
var postTest = function(test, cb){
test.save(function(err,data){
if(!err)
cb(null,data);
});
};