процесс не завершается и сообщение не отображается в nodejs - PullRequest
0 голосов
/ 05 июня 2018

Я новичок в Node.JS и MongoDB. Я хочу сделать процесс регистрации. Теперь я проверяю демонстрационный код без использования express.js. Моя задача - если пользователь существует в БД, я должен отобразить "Высуществующий пользователь перейти на страницу входа ", если пользователь новичок в БД, я должен вставить данные в БД.Я должен показать «добро пожаловать, вы новый пользователь» В этом коде все выполнено отлично, но сообщение не распечатывается, в чем проблема. Кто-нибудь может решить эту проблему? Заранее спасибо ..

var mongodb=require("mongodb");
var mongoclient=mongodb.MongoClient;
var url="mongodb://localhost:27017/check";
var username="V.V vinayak";
var userpass="655vhwhww";
var usergmail="vvvinayak123@gmail.com";
var message="";
mongoclient.connect(url,function(err,db)
{
    if(err)
    {
        console.log("check db is not connected");
        console.log(err);
    }
    else
    {
        console.log("check db is connected");
        var collection=db.collection("achocho");
        collection.findOne({"name":username},function(err,result)
        {
            if(err)
            {
                console.log(err);
            }
            else if(result)
            {
                message="You are exist user go to login Page";
            }
            else
            {
                collection.insertOne({"name":username,"gmail":usergmail,"password":userpass},function(err,result)
                {
                    if(err)
                    {
                        console.log(err);
                    }
                    else
                    {
                       console.log("Data inserted successfully"); //This message is also displayed correctly for me...
                       message="welcome you are new user";
                    }
                });
            }
        });
    }
    console.log(message);   // This message is not printed  that is the problem.I should display the message here
});

1 Ответ

0 голосов
/ 05 июня 2018

Узел JS асинхронный по своей природе, поэтому вам нужно тщательно написать следующий шаг выполнения. Найдите обновленный код ниже:

  var mongodb=require("mongodb");
  var mongoclient=mongodb.MongoClient;
  var url="mongodb://localhost:27017/check";
  var username="V.V vinayak";
  var userpass="655vhwhww";
  var usergmail="vvvinayak123@gmail.com";
  var message="";
  mongoclient.connect(url,function(err,db)
  {
      if(err)
      {
          console.log("check db is not connected");
          console.log(err);
      }
      else
      {
    console.log("check db is connected");
    var collection=db.collection("achocho");
    collection.findOne({"name":username},function(err,result)
    {
        if(err)
        {
            console.log(err);
        }
        else if(result)
        {
            message="You are exist user go to login Page";
            printMsg(message);
        }
        else
        {
            collection.insertOne({"name":username,"gmail":usergmail,"password":userpass},function(err,result)
            {
                if(err)
                {
                    console.log(err);
                }
                else
                {
                   console.log("Data inserted successfully"); //This             message is also displayed correctly for me...
                   message="welcome you are new user";
                   printMsg(message);
                }
            });
        }
    });
}
});
  printMsg(message) {
  console.log(message);   
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...