現在、mongoose から node-mongodb-native にロールバックしています。
したがって、私はこのトピックではまったく新しいです。ただし、現在の私の問題は、サーバーの起動時にデータベース コレクションを作成し、それをアプリケーションから使用できるようにすることです。残念ながら、接続関数のコールバックでデータベース アクションを直接実行することしかできない例は、リポジトリでしか見つかりません。
ドキュメント:
var mongodb = require("mongodb"),
mongoServer = new mongodb.Server('localhost', 27017),
dbConnector = new mongodb.Db('example', mongoServer);
db_connector.open(function(err, db) {
if (err) throw new Error(err);
// here I can do my queries etc.
});
しかし、ルートコールバックにいるときに、コールバックで db オブジェクトにアクセスするにはどうすればよいですか? 現在、私が持っている唯一のアイデアは、アプリケーションをコールバックにラップすることです:
var mongodb = require("mongodb"),
express = require("express"),
mongoServer = new mongodb.Server('localhost', 27017),
dbConnector = new mongodb.Db('example', mongoServer);
var app = new express();
db_connector.open(function(err, db) {
if (err) throw new Error(err);
app.get('/products', function(req, res, next) {
db.collection('products', function(err, collection) {
if (err) next(new Error(err));
collection.find({}, function(err, products) {
res.send(products);
});
});
});
});
しかし、これが本来あるべき姿だとは思いませんか?
Mongoose のように、アプリケーション全体で簡単に使用できる同期データベース接続呼び出しを作成する方法はありませんか?
よろしくボド