Mongoosejs对象用法

时间:2014-04-19 08:42:54

标签: node.js mongodb express mongoose

我连接到server.js文件中的mongo DB实例并从另一个文件导入模型。
我的问题是,如何使用模型中的对象更新数据库未连接到mongoDB文件中的server.js个实例?

所以我有一个server.js,其中包含以下几行:

//server.js
...
var mongoose   = require('mongoose');
mongoose.connect('mongodb://localhost/Iganiq8o');
var Bear     = require('./app/models/bear');
var router = express.Router();  

router.route('/bears')

    .post(function(req, res) {

        var bear = new Bear(); 
        bear.name = req.body.name;

        bear.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'Bear created!' });
        });

    });

app.use('/api', router);
...

我有一个模型文件,如:

// app/models/bear.js
var mongoose     = require('mongoose');
var Schema       = mongoose.Schema;

var BearSchema   = new Schema({
    name: String
});

module.exports = mongoose.model('Bear', BearSchema);

所以,我能够使用Bear模型更新mongoDB,即使它永远不会连接到bear.js文件中的mongoDB实例。

我的熊(var bear = new Bear();)对象如何知道mongoDB实例?有关如何发生的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

因为模型是通过mongoose.model创建的,所以模型与调用mongoose.connect('mongodb://localhost/Iganiq8o');

时创建的默认连接池相关联

这一切都有效,因为在任何文件中调用require('mongoose')都会返回相同的cached Mongoose模块实例。