Вы можете создать модуль mongoUtil.js
, который имеет функции как для подключения к mongo, так и для возврата экземпляра mongo db:
var MongoClient = require( 'mongodb' ).MongoClient;
var _db;
module.exports = {
connectToServer: function( callback ) {
MongoClient.connect( "mongodb://localhost:27017/marankings", function( err, db ) {
_db = db;
return callback( err );
} );
},
getDb: function() {
return _db;
}
};
Чтобы использовать его, вы сделаете это в своем app.js
:
var mongoUtil = require( 'mongoUtil' );
mongoUtil.connectToServer( function( err ) {
// start the rest of your app here
} );
И тогда, когда вам нужен доступ к mongo где-нибудь, вы можете сделать это:
var mongoUtil = require( 'mongoUtil' );
var db = mongoUtil.getDb();
db.collection( 'users' ).find();
Причина этого в том, что в узле, когда модули require
'd, они только загружаются / получаются один раз, так что вы только когда-нибудь закончите с одним экземпляром _db
, а mongoUtil.getDb()
всегда вернет тот же самый экземпляр.
Примечание, код не проверен.
У вас есть все, что вам нужно для создания / запуска программ. Может быть, что-то не так в конфигурации. Вы должны разделить задачи, чтобы выяснить проблему.
Сначала попробуйте скомпилировать ваш минимальный пример, выполнив g ++ из консоли следующим образом: g++ main.cpp
. Если вы получаете то же сообщение об ошибке, то вам нужно исправить настройки Mingw-w64.
Если это работает, значит что-то не так с затмением. Возможно, вы захотите проверить разные типы проектов. При использовании проектов Makefile
у вас, возможно, больше возможностей для проверки на консоли.