Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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/35.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 如何在另一个文件中使用MongoDB集合_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 如何在另一个文件中使用MongoDB集合

Javascript 如何在另一个文件中使用MongoDB集合,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我有一个服务器文件是server.js 我在这个文件中有一个MongoDB连接,如下所示: var Db=require('mongodb').Db; var BSON=require('mongodb').BSONPure; var Server=require('mongodb').Server; client=new Db('database' , new Server('127.0.0.1',27017),{safe:false}); client.open(function(err

我有一个服务器文件是
server.js

我在这个文件中有一个MongoDB连接,如下所示:

var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{
    client.collection('userdetails',function(err,collection)
    {
        Ucollection=collection;
    });
});
我有另一个文件名为
server2.js
。在这个文件中,我必须检查
Ucollection
(这是集合名称)中是否存在用户名


如何将MongoDB连接到
server2.js
?如何在
server2.js
中使用此集合?

您对模块化代码的整个概念有点误解。对于您的任务,不应再创建一个server.js。您可以创建另一个模块,比如verifyUser,并在server.js文件中要求它。在mongodb连接之后,您可能需要它。

您可以这样做

在server.js中:

var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

global.mongoHelper = {};
global.mongoHelper.db = Db;
global.mongoHelper.bson = BSON;
global.mongoHelper.server = Server;


client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{
    client.collection('userdetails',function(err,collection)
    {
        Ucollection=collection;
    });
});
在server2.js中

client=new global.mongoHelper.db('database' , new global.mongoHelper.server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{
    client.collection('userdetails',function(err,collection)
    {
        Ucollection=collection;
    });
});
var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

module.exports.connectDatabase = function(callback){
   client.open(function(err,pClient)
   {
       if(err){
         console.log(err);
         process.exit(1);
       }

       module.exports.userCollection = pClient.collection('userdetails');
       callback();
   });
}
var  database = require('./database-config')
database.connectDatabase(function() {
   //here you can reuse collection like this
   database.userCollection

}

我认为更干净的方法是将数据库配置分离到一个分离文件中。像这样

在数据库config.js中

client=new global.mongoHelper.db('database' , new global.mongoHelper.server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{
    client.collection('userdetails',function(err,collection)
    {
        Ucollection=collection;
    });
});
var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

module.exports.connectDatabase = function(callback){
   client.open(function(err,pClient)
   {
       if(err){
         console.log(err);
         process.exit(1);
       }

       module.exports.userCollection = pClient.collection('userdetails');
       callback();
   });
}
var  database = require('./database-config')
database.connectDatabase(function() {
   //here you can reuse collection like this
   database.userCollection

}
在server.js中

client=new global.mongoHelper.db('database' , new global.mongoHelper.server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{
    client.collection('userdetails',function(err,collection)
    {
        Ucollection=collection;
    });
});
var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

module.exports.connectDatabase = function(callback){
   client.open(function(err,pClient)
   {
       if(err){
         console.log(err);
         process.exit(1);
       }

       module.exports.userCollection = pClient.collection('userdetails');
       callback();
   });
}
var  database = require('./database-config')
database.connectDatabase(function() {
   //here you can reuse collection like this
   database.userCollection

}
在server2.js中

var  database = require('./database-config')
//here you can reuse collection like this
   database.userCollection
我假设server.js是您实际初始化服务器的主文件,所以当您运行应用程序时,它会连接到数据库并加载所需的集合,您可以像我一样在应用程序中的任何位置使用这些集合,这被认为是重用集合的最佳实践。如果有任何混淆,请告诉我

server.js

var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{

     exports.Ucollection=pClient;
  });
});
server2.js

  var mongodb = require('mongodb');
  var mainApp=require('./server');
  var collectionObj=mainApp.Ucollection;
  var collection = new mongodb.Collection(collectionObj, 'userdetails');
使用此集合。您可以按如下方式进行查询

  collection.insert(userInfo,{safe:true},function(err, objects) {
    if(!err){
       console.log('Data inserted successfully.');
     }

  });

我不明白。请告诉我如何将此集合名称用于另一个文件。这样,我认为您甚至可以重用该集合!我在哪里可以给予和接受。我不知道如何给予。让我知道。再一次,我有一个疑问,我是否可以使用这种编码来生成更多的文件?是的,您可以使用相同的方法来生成任何其他服务器端js文件。关于如何接受答案,请检查以下内容:在一个服务器文件中,它正在工作,但在另一个文件中,我尝试了并得到了此错误类型错误:无法读取未定义的属性“db”,这是我这样问的。我想在执行
server.js
之前,会执行给您带来错误的文件。改变你的执行顺序<代码>服务器.js始终应首先执行。否则请看库鲁姆·库雷希的答案{}它很整洁。