Хранить данные из MongoDB в переменной - mongoose и node.js - PullRequest
0 голосов
/ 14 августа 2011

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

db.model("users").findOne({username: username, password: password}, {type:1}, 
    function(err, data) {
        if(err) {
            return "Error";
        } else if() {
            return "No records";
        } else {
            return data.type;
        }
    }
);

Я получаю значение типа при запуске этого.

Но как мне сохранить это в переменной вне этой функции?

1 Ответ

2 голосов
/ 14 августа 2011

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

var Database = function {
  var myText = null;

  return {    

    getUser: function(username, password, callback) {
      db.model("users").findOne({username: username, password: password}, {type:1},
           function(err, data) {
             if (err) {
               myText = "Error";
             }
             else if (data.length == 0) {
               myText = "No records";
             }
             else {
               myText = data.type
             }

             $('.log').html(myText);
             callback(myText);
      });
    };
  };
}();

Из server.js вы можете затем позвонить:

Database.getUser(username, password, function(theText) { alert(theText); });

Вам нужно уметь понимать, как взаимодействуют различные элементы, поскольку Javascript с обратными вызовами не работает синхронно. Тем не менее, должно быть возможно достичь любого результата, который вы ищете. Наслаждайтесь и счастливого кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...