所有
我对Node中的MongoDB / Mongoose很新。
我不确定从快速入门中导入数据库连接的正确方法是什么:
它使用它像:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
// yay!
});
这里有一个问题:
运行
后,它会将错误和打开事件绑定到该连接mongoose.connect
为什么这仍然能够捕获打开和错误事件如果连接在 db.on和db.once之前完成了?(我在这里不确定的是:那实际上是mongoose.connect将连接请求发送到mongoDB服务器或只是将一些值设置为mongoose内部或者mongoose的工作方式类似于promise?)
我想用它作为节点模块导出到节点中的其他模块,所以我只是简单地创建一个db.js:
db.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function (callback) {
// yay!
});
module.exports = mongoose;
我在test.js中使用此db连接
test.js
var mongoose = require("./db");
var kittySchema = mongoose.Schema({
name: String
});
var Kitten = mongoose.model('Kitten', kittySchema)
var fluffy = new Kitten({ name: 'fluffy' });
fluffy.save(function(err, cat){});
问题是:
我怎么知道并等到建立连接之后,可以在建立连接之前执行保存,这会导致错误。
有人能告诉我使用mongoose的正确方法吗?
由于