Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t使用MongoDB导出node.js中的用户数据_Javascript_Node.js_Mongodb_Mongoose_Database - Fatal编程技术网

Javascript Can';t使用MongoDB导出node.js中的用户数据

Javascript Can';t使用MongoDB导出node.js中的用户数据,javascript,node.js,mongodb,mongoose,database,Javascript,Node.js,Mongodb,Mongoose,Database,我似乎找不到一种方法来导出从数据库返回的用户数据。当我在另一个文件中需要它时,我会得到未定义的值或空对象。请帮助我所有想要的是导出用户信息,以便我可以在另一个文件中使用它 我的auth.js文件: // Modules var mongodb = require('mongodb'); var MongoClient = mongodb.MongoClient; var url = 'mongodb://localhost:27017/affinity'; window.$ = window.j

我似乎找不到一种方法来导出从数据库返回的用户数据。当我在另一个文件中需要它时,我会得到未定义的值或空对象。请帮助我所有想要的是导出用户信息,以便我可以在另一个文件中使用它

我的auth.js文件:

// Modules
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/affinity';
window.$ = window.jQuery = require('jquery');

$(document).ready(function () {

   // Look through db for user
   // Flters through the db to find the user and their password to authenticate them in.
   userInfo = function (db, callback) {
      var username = $('#username').val();
      var password = $('#password').val();
      var users = db.collection('users');

      // Searches through each user in the db to find one which meets conitions.
      var cursor = users.find({
         "username": username
      }, {"limit": 1} ).each(function (err, doc) {
         if (doc != null) {
            if (doc.password === password) {
               module.exports.user_data = doc;
               window.location.replace(__dirname + '/assets/views/main.html');
            } else {
               $("#error-hint").css(
                  'visibility', 'visible'
               );
            }
         } else {
            // Skip user if it isn't matching
         }
      });
   }

   // Connects to database.
   // Inserts all user data to the database.
   MongoClient.connect(url, function (err, db) {
      if (err) {
         console.log('Couldn\'t connect to the mongoDB server. \nERROR: ' + err);
      } else {
         var collection = db.collection('users');

         // When login button run authUser function
         $('#auth-btn').click(function () {
            userInfo(db, function () {
               db.close();
            });
         });
      }
   });

});
我的app.js文件:

// Modules
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/affinity';
var exported = require("/Users/mac/Desktop/projects/Affinity/assets/scripts/auth.js");
window.$ = window.jQuery = require('jquery');

$(document).ready(function () {

   var userInfo = exported;
   console.log(userInfo);

   MongoClient.connect(url, function (err, db) {
      if (err) {
         console.log("Wasn't able to connect to mongoDB server. \n" + url);
      } else {
         console.log("Connection established to " + url);
         db.close();
      }
   });

});

提前谢谢你

为什么要在服务器端代码中使用
$(document).ready
。我不确定,这是否不好?这没有任何意义。node.js将在服务器上运行。不是客户。我甚至不确定该代码是否会运行,或者jquery如何处理服务器上的
document
。另一个问题是,您试图导出的是来自mongo的异步调用。你的
userInfo=export
是在mongo运行查询之前完成的。我知道你在说什么,但是我怎么才能将查询检索到的数据导出呢?老实说,如果你只是在编写脚本。在你的app.js中执行MongoClient.connect中的所有操作。为什么要在服务器端代码中使用
$(document)。ready
。我不确定,它是否不好?这没有任何意义。node.js将在服务器上运行。不是客户。我甚至不确定该代码是否会运行,或者jquery如何处理服务器上的
document
。另一个问题是,您试图导出的是来自mongo的异步调用。你的
userInfo=export
是在mongo运行查询之前完成的。我知道你在说什么,但是我怎么才能将查询检索到的数据导出呢?老实说,如果你只是在编写脚本。在app.js中的MongoClient.connect中执行所有操作。