J'utilise node-mongodb-native driver avec mongodb pour écrire un site web.Comment réutiliser la connexion mongodb dans node.js
J'ai une question sur la façon d'ouvrir la connexion MongoDB une fois, puis utilisez les utilisateurs de nom de collection en user.js
et des postes de nom de collection en comment.js
Je veux ouvrir la connexion db dans db.js
puis insérer/enregistrer des données pour les utilisateurs et les messages collection
code Actuellement, mon db.js
var Db = require('mongodb').Db,
Connection = require('mongodb').Connection,
Server = require('mongodb').Server;
module.exports = new Db(
'blog',
new Server('localhost', Connection.DEFAULT_PORT, {auto_reconnect: true})
);
je db.js
dans un user.js
s suivre
var mongodb = require('./db');
function User(user){
this.name = user.name;
this.password = user.password;
this.email = user.email;
};
module.exports = User;
User.prototype.save = function(callback) {//save user information
//document to save in db
var user = {
name: this.name,
password: this.password,
email: this.email
};
mongodb.close();
//open mongodb database
mongodb.open(function(err, db){
if(err){
return callback(err);
}
//read users collection
db.collection('users', function(err, collection){
if(err){
mongodb.close();
return callback(err);
}
//insert data into users collections
collection.insert(user,{safe: true}, function(err, user){
mongodb.close();
callback(err, user);//success return inserted user information
});
});
});
};
et comment.js
var mongodb = require('./db');
function Comment(name, day, title, comment) {
this.name = name;
this.day = day;
this.title = title;
this.comment = comment;
}
module.exports = Comment;
Comment.prototype.save = function(callback) {
var name = this.name,
day = this.day,
title = this.title,
comment = this.comment;
mongodb.open(function (err, db) {
if (err) {
return callback(err);
}
db.collection('posts', function (err, collection) {
if (err) {
mongodb.close();
return callback(err);
}
//depend on name time and title add comment
collection.findAndModify({"name":name,"time.day":day,"title":title}
, [ ['time',-1] ]
, {$push:{"comments":comment}}
, {new: true}
, function (err,comment) {
mongodb.close();
callback(null);
});
});
});
};
Votre question ne ressemble pas à une question. Ce qui ne se passe pas, et s'il vous plaît poster le défi exact que vous faites face. – moka