mongooseを使ってmongodb接続を開き、テストコレクション内のすべてのレコードを返す比較的単純なNodeスクリプトがあります。別のモジュールにいると、なぜマングース接続がハングしますか?
何らかの理由で、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ファイルのバージョンが正常に動作し、結果を返します。あなたが見ることができるように、唯一の違いは1ファイル対2を使用しているようです。
私はここで何が欠けていますか?
うん、それで運がない。 – nrflaw