L'exportation d'une mangouste module de base de données
- Je exporter mes mangouste module de base de données, afin que je puisse utiliser mes modèles définis à partir de chaque module dans mon programme.
Par exemple, mon database.js module ressemble à quelque chose comme ça:
var mongoose = require('mongoose'),
db = mongoose.createConnection('mongodb://localhost/newdb'),
Schema = mongoose.Schema;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
console.log("Connected to database newdb");
var dynamicUserItemSchema = new mongoose.Schema({
userID: Number,
rank: Number,
});
var staticUserItemSchema = new mongoose.Schema({
_id: Schema.Types.Mixed,
type: Schema.Types.Mixed,
});
var DynamicUserItem = db.model('DynamicUserItem', dynamicUserItemSchema);
var StaticUserItem = db.model('StaticUserItem', staticUserItemSchema);
});
Je veux être en mesure de l'ajout var db = require('../my_modules/database');
à n'importe quel autre module mon programme je vais donc être en mesure d'utiliser les modèles comme ça:
db.DynamicUserItem.find();
ou item = new db.DynamicUserItem({});
Est-il possible de le faire à l'aide de "exportations" ou "module exportations" ? Merci.
Vous devez vous connecter pour publier un commentaire.
J'ai l'habitude de ne pas utiliser le
error
etopen
événements et de suivre l'exemple de mongoosejs pour créer une connexion à ma base de données. À l'aide de l'exemple, vous pouvez effectuer les opérations suivantes.db.js
et puis dans votre app.js vous pouvez faire quelque chose comme
Espère que ça aide!
exports.Cat = Cat
etexports.Dog = Dog
) ou un bâton avec un seul modèle par fichier. Pour le plus tard, je voudrais utiliser un mondial de fichier de configuration pour la connexion de base de données params.Vous pouvez utiliser les exportations de définir un module qui peut être requis ailleurs:
./models/list.js
./routes/list.js
./app.js
Si vous utilisez express, puis je mettrais les modèles de l'application.les paramètres. Vous pouvez faire quelque chose comme cela au temps de configuration:
Vous serait alors en mesure d'utiliser les modèles comme
req.app.settings.db.users
, ou vous pouvez créer un moyen d'obtenir ledb
var dans le fichier que vous souhaitez dans d'autres façons.Cette réponse n'est pas un exemple complet, mais jetez un oeil à mon starter projet qui définit express et de la mangouste dans un facile à utiliser la voie: https://github.com/mathrawka/node-express-starter
Comme un ajout à accepté de répondre, si vous souhaitez exporter plusieurs modules que vous pouvez faire:
Dans db.js:
Puis dans le app.js: