2016-10-20 6 views
0

Я новичок в среднем стеке, я завершил обновление, удаление и получение данных, но не могу вставить данные в mongoose. Кто-нибудь может мне помочь. Спасибо заранее, это мой код.не может вставлять данные с помощью mongoose

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

var app = express(); 
app.use(express.static(__dirname + "/public")); 
app.use(bodyParser.json()); 
db.connect('mongodb://localhost/contactlist'); 
var db1 = db.connection; 
db1.on('error', err); 
db1.once('open',startserver); 
function err(){ 
console.log('connection error:'); 
} 
function startserver(){ 
console.log('start'); 
app.listen(3000); 
} 
var contactdetails1 = new db.Schema({ 
    name:String, 
    email:String, 
    password:String, 
    number:String 
}); 
db1.model('Contactdetails',contactdetails1); 

app.post('/contactList',function(req,res){ 
    console.log("Get insert request"+req.body); 
//var contactList = new ContactList(req.body); 
    var contactdetails1 = new db.Schema({ 
    name:req.body.name, 
    email:req.body.email, 
    password:'', 
    number:req.body.number   
    }); 


    contactdetails1.save(function(err,data) { 
     if (err) { 
      response = { 
       "status":0, 
       "error":err, 
      }; 
     }else{ 
      response = { 
       "status":1, 
       "data":data, 
       "message":"User registered successfully" 
      }; 
     } 
     console.log(response); 
     res.json(response); 
    });  
}); 

при вставке данных в то время ниже ошибки показывают

Неопределенного типа Test в name Пробовали ли вы гнездование Schemas? Вы можете использовать только репозитории или массивы. at Function.Schema.interpretAsType (/usr/lib/node_modules/mongoose/lib/schema.js:666:11) на Schema.path (/usr/lib/node_modules/mongoose/lib/schema.js:545: 29) на Schema.add (/usr/lib/node_modules/mongoose/lib/schema.js:429:12) на новой схеме (/usr/lib/node_modules/mongoose/lib/schema.js:100:10) на /var/www/html/contactlistappmvc/server.js:53:25

ответ

0
var contactdetails1 = new db.Schema({ 
name:req.body.name, 
email:req.body.email, 
password:'', 
number:req.body.number   
}); 

Вы должны экономить модель, а не схемы. То, что вы сделали здесь, - это передать объект в схему. Документы являются экземплярами моделей, а не схем. Схема - это просто определение объекта.

Вместо того, что вы сделали здесь, почему бы не сделать

var ContactModel = mongoose.model('Contactdetails',contactdetails1); 


var contactModel = new ContactModel({ 
name:req.body.name, 
email:req.body.email, 
password:'', 
number:req.body.number 
}) 

А потом сделать contactModel.save()

+0

я не могу понять, читать, обновлять и удалять, DeleteAll операции выполняются по приведенному выше коду, но во время появления ошибки типа вставки. – sunil

+0

ReferenceError: ContactModel не определен
ошибка показывает – sunil

+0

Вы вероятно пропустили 'вар ContactModel = db1.model ('Contactdetails', contactdetails1);' – nikjohn