Задать вопрос
bemdev
@bemdev

Как сделать такой хелпер?

Приветствую!

Подскажите пожалуйста, может я конечно и ***ей страдаю но я хочу сделать себе модуль с хелперами работы с монго, чтобы потом вызвал модуль написал строку и дело пошло.

но ни как не могу понять как мне сделать так чтобы каждый метод типа insertData сам конектился и дисконеклился но так же из внутреннего метода connect и дисконект, ну вдруг мне гдето еще это может пригодиться отдельно.

если я занимаюсь откровенной ерундой и все пишут все целиком при необходимости данных, дайте знать :))

спасибо за внимание!

modules.define('dbcontrol', function(provide) {
	

	provide({

		_connect: function(task){
			var MongoClient = require('mongodb').MongoClient, assert = require('assert');
			var url = 'mongodb://localhost:27017/test';
			// Use connect method to connect to the server
			MongoClient.connect(url, function(err, db) {
			  assert.equal(null, err);
			  console.log("Connected successfully to mongoserver");
			  task();
			});
		},
		_disconnect: function(db){
				db.close();
				console.log('Connection break');
		},
		insertData: function(data) {
			_this = this;
			_this.connect(task);
		  // Get the documents collection
		  var task = function () {

			  var collection = db.collection('documents');
			  // Insert some documents
			  // console.log(sli[0]);
			  collection.insert(data);
			  _this.disconnect();
		  
		  }
  • Вопрос задан
  • 276 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@re67man
Смотря что вы подразумеваете под хелпером. В моем понимании хелпер - это модуль содержащий объекты или функции являющиеся обертками над какими-то объектами или функциями способствующий уменьшить количество кода в модуле к которому подключен хелпер.
к примеру, если я вас правильно понял.
где-то в коде.
var MONGO = {}

MONGO содержит
connect()
disconnect()
insertData()
isConnected()

function wrapInsertData(aData){
	if (!MONGO.isConnected()) {
		MONGO.connect(function(){
			MONGO.insert(aData)
			//делаете что то еще
		})
	}
}


во всем проектах использую такие хелперы. если где-то в обертке есть ошибка, или нужно добавить какой-то код, то проблем особых нет, и не придется переписывать часть модулей добавляя исправления.

Нет, ****ей не страдаете.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
Подключаться-отключаться на каждый чих? А если будет 100 запросов в цикле, например?
Где промисы/коллбэки?
Приложение на ноде - долгоживущее и может выполнять одновременно несколько запросов к базе, поэтому делается пул подключений и запросы распределяются между его элементами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы