0

サーバーの起動時にmongo接続をグローバルobjに追加して、任意のファイルからアクセスできるようにします

// app.js
mClient.connect(mongoUrl, function(err, db) {
  global.mongo = db;
});

そして、このように使用します

// store.js  
global.mongo.collection(thisColl, function(err, collection) {
  if (err) return self.emit("error", "collection not found");

  collection.find(query, select).toArray(function(err, stores) {
    if (err || !stores) return self.emit("error", "result not found");

    return self.emit("done", stores);
    });
  });

しかし、時々、単独で修正されるエラーが発生し、方法がわかりません

// Error
{"code":"InternalError","message":"Cannot call method 'collection' of undefined"}

リクエストごとに接続を開いたり閉じたりするわけではないため、これを行っています

4

1 に答える 1

0

私はそれをうまく機能させることができます、おそらくより良い方法ではありませんが、機能します

// Create MongoDB connection
mClient.connect(mongoUrl, function(err, db) {
  global.mongo = db;
  // Start HTTP server  
  server.listen(4000, function() {
    console.log("%s listening at %s", server.name, server.url);
  });
});
于 2013-01-28T15:48:23.070 に答える