2016-11-29 67 views
0

我有一个节点的js程序,我想通过我的API插入一个新的文档的集合:插入文档蒙戈DB导致错误

router.post('/add', function(req, res) { 

    var apple = { 
     name: req.body.name, 
     ip: req.body.ip 
    } 

    serverSchema.insert(apple, function(err, result) { 
     if (err) { 
     console.log(err); 
     } else { 
     console.log('added'); 
     } 
    }); 
}); 

的模式是这样的:

var serverSchema = new mongoose.Schema({ 
    // unique + required do not allow duplicates in the dbs 
    name: { 
    type: String, 
    unique: true, 
    required: true 
    }, 
    ip: { 
    type: String, 
    unique: true, 
    required: true 
    } 
}); 

module.exports = mongoose.model('serverSchema', serverSchema); 

然而,当我尝试添加这个项目我抛出了以下错误:

TypeError: Object function model(doc, fields, skipId) { 
    if (!(this instanceof model)) { 
     return new model(doc, fields, skipId); 
    } 
    Model.call(this, doc, fields, skipId); 
    } has no method 'insert' 

知道为什么这是HAP pening?

*星展银行连接开放

感谢

回答

0

看起来你正在使用serverSchema不正确。 mongoose.schema没有insert方法。

架构文件看起来是这样的:

var mongoose = require("mongoose"); 

var db = mongoose.connect('mongodb://000.0.0.1/test'); 

var serverSchema = new mongoose.Schema({ 
    name: { 
    type: String, 
    unique: true, 
    required: true 
    }, 
    ip: { 
    type: String, 
    unique: true, 
    required: true 
    } 
}); 

module.exports = db.model('server', serverSchema) 

API文件看起来是这样的:

router.post('/add', function(req, res) { 

    //require mongoose model defines in model/serverSchema.js 
    var aServer = require("./model/serverSchema"); 

    var apple = new aServer({name: "Honeycrisp", ip: "red"}); 

    post.save(function(err) { 
     if (err) { 
     return err; 
     } else { 
     console.log('added'); 
     } 
    }); 
}); 
+0

所以我怎么能插入一个文件? – noDe1

+0

我添加了一个编辑,查看它是否有帮助。 –