2016-10-20 73 views
0

我是新的意思是堆棧我完成更新,刪除和獲取數據,但不能插入數據在貓鼬任何人都可以幫助我please.thanks下面是我的代碼。不能插入數據使用貓鼬

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

name低於錯誤顯示

未定義類型Test那個時候插入數據時 你嘗試嵌套架構?您只能使用參考或數組進行嵌套。 at Schema.path(/usr/lib/node_modules/mongoose/lib/schema.js:545:)上的Function.Schema.interpretAsType(/usr/lib/node_modules/mongoose/lib/schema.js:666:11) 29) at Schema.add(/usr/lib/node_modules/mongoose/lib/schema.js:429:12) at new Schema(/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

你可能錯過了'VAR ContactModel = db1.model( 'Contactdetails',contactdetails1);' – nikjohn