У меня есть относительно простой сценарий узла, который должен открыть соединение mongodb (используя mongoose) и вернуть все записи в тестовую коллекцию.Почему соединение мангуста зависает, когда в отдельном модуле?
По какой-то причине, когда я разделяю вызов mongoose.connect
в отдельный модуль (потому что он будет использоваться несколькими скриптами), скрипт не работает. Но когда я делаю вызов connect
в том же файле, он работает.
Разбитое Версия
connect.js
var mongoose = require("mongoose");
var config = require("./_config"); // holds different mongo URIs for dev/prod
var mongoUrl = config.mongoURI[process.env.NODE_ENV];
mongoose.connect("mongodb://localhost/test");
var db = mongoose.connection;
db.on("connected", function() {
console.log("Mongoose default connection open to " + mongoUrl);
});
script.js
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
require("../server/connect");
var testSchema = new Schema({
teststring: String
}, {
timestamps: true
}, { bufferCommands: false });
var Tester = mongoose.model("Tester", testSchema);
Tester.find(function (err, result) {
console.log(result);
});
// node script.js
// Outputs "Mongoose default connection open to mongodb://localhost/test"
// then hangs
Рабочая версия
script.js
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var config = require("./_config");
var mongoUrl = config.mongoURI[process.env.NODE_ENV];
mongoose.connect(mongoUrl);
var db = mongoose.connection;
db.on("connected", function() {
console.log("Mongoose default connection open to " + mongoUrl);
});
var testSchema = new Schema({
teststring: String
}, {
timestamps: true
}, { bufferCommands: false });
var Tester = mongoose.model("Tester", testSchema);
Tester.find(function (err, result) {
console.log(result);
});
Это один-версия файла отлично работает и возвращает результаты. Как видите, единственная разница, по-видимому, заключается в использовании 1 файла против 2.
Что мне здесь не хватает?
Да, не повезло с этим. – nrflaw