【问题标题】:can't insert data using mongoose无法使用猫鼬插入数据
【发布时间】:2017-03-02 06:36:54
【问题描述】:

我是平均堆栈中的新手,我完成了更新、删除和获取数据,但无法在 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);   
    });       
});

当时在下面插入数据时出现错误提示

未定义类型Testname 您是否尝试过嵌套模式?您只能使用 refs 或数组进行嵌套。 在 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

【问题讨论】:

    标签: node.js mongodb mongoose mean-stack crud


    【解决方案1】:
    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()

    【讨论】:

    • 我无法理解读取、更新和删除、删除操作都是由上面的代码执行的,但是在插入类型错误时显示。
    • ReferenceError: ContactModel 未定义
      错误显示
    • 你可能错过了var ContactModel = db1.model('Contactdetails',contactdetails1);
    • TypeError: 无法读取属性 'model'未定义
         在新模型 (/usr/lib
    • 我做 var contactModel = new ContactModel({ 而不是 ContactModel.model({ 它对我来说很好用,谢谢。
    猜你喜欢
    • 2022-12-19
    • 2014-12-22
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多