关闭Mongoose中的DB

时间:2012-08-28 11:05:13

标签: node.js mongodb mongoose

我有以下代码使用Mongoose在Mongo中插入记录。

var mongoose = require('mongoose');
var config      = require ('config');


var db = mongoose.createConnection(config.database.address, config.database.dbName);
var strCollectionName = 'category';

var CategorySchema = new mongoose.Schema({
      categoryName          : {type: String, required: true , unique: true }, 
      categoryTag           : {type: String},
      categoryDescription   : {type: String},
      createDate             : {type: Date, default: Date.now}
});


var createCategory = function (objCategory)
{

        var Category = db.model(strCollectionName, CategorySchema );

        var objSchema = new Category(objCategory);
        objSchema.save(function (err)
        {
            if (err)
                console.log ("Error");
            else
                console.log ("Success !!");


        });


}

我设法让它发挥作用。但是如果我尝试在save中发出db.close()命令,则抛出错误,否则它是好的。我的问题是我不应该完全关闭连接? Mongoose会自动照顾吗? - 我担心如果连接池超出限制,则整个数据库可能会崩溃。

1 个答案:

答案 0 :(得分:1)

要做到这一点:

定义你的模型并同时告诉Mongoose。您可以在创建连接之前执行此操作。

当您想要使用它时,您之前正在告诉Mongoose您的架构 - 当您自己创建架构时,您只需要执行一次。

然后,您可以打开Mongoose的连接,该连接可以在整个应用程序中使用(即随后使用它,您只需要require('mongoose')):

var mongoose = require('mongoose');
var config   = require ('config');

var CategorySchema = new mongoose.Schema({
    categoryName          : {type: String, required: true , unique: true }, 
    categoryTag           : {type: String},
    categoryDescription   : {type: String},
    createDate            : {type: Date, default: Date.now}
});

mongoose.model('Category', CategorySchema);

mongoose.connect(config.database.address, config.database.dbName);

如果您想手动创建和管理连接,可以使用.createConnection,如上例所示,但除非您知道自己在做什么,否则最好只使用Mongoose的默认连接。

创建类别:

// if you're in a different file to where you created your CategorySchema, var these:
var mongoose = require('mongoose'),
    Category = mongoose.model("Category");

var createCategory = function (objCategory) {
    var newCategory = new Category(objCategory);
    newCategory.save(function (err) {
        if (err)
            console.log ("Error");
        else
            console.log ("Success !!");
    });
}