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始终应首先执行。否则请看库鲁姆·库雷希的答案{}它很整洁。