2016-10-20 2 views
0

나는 평균 스택이 새롭다. 업데이트를 완료하고 삭제하고 데이터를 가져올 수 있지만 몽구스에 데이터를 삽입 할 수 없다. 누구든지 나를 기쁘게 할 수있다. name에서 오류 쇼몽구스를 사용하여 데이터를 삽입 할 수 없습니다.

정의되지 않은 유형 Test 아래 그 시간에 데이터를 삽입 할 때

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

는 당신은 중첩 스키마를 시도 했습니까? 심판이나 배열 만 사용하여 중첩 할 수 있습니다. at Function.Schema.interpretAsType (/usr/lib/node_modules/mongoose/lib/schema.js:666:11) at Schema.path (/usr/lib/node_modules/mongoose/lib/schema.js:545 : 29) at Schema.add (/usr/lib/node_modules/mongoose/lib/schema.js:429:12) at new 스키마 (/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 작업을 수행 할하지 않는다 위의 코드에 의해하지만 삽입 유형 오류가 보여줍니다. (새로운 모델에서 정의되지 않은
   의 재산 ' 모델 '을 읽을 수 없습니다는/usr :; : – sunil

+0

ReferenceError가' – sunil

+0

ContactModel가 정의되지는
오류가 표시됩니다/lib – nikjohn

관련 문제