次の Node.js ディレクトリ構造があります。
|--app/
|--app.js
|--routers/
|--index.js/
|--models/
|--schemas.js
|--post.js
app.jsに、このような行がありますmongoose.connect('mongodb://localhost/' + config.DB_NAME);
。schema.jsで:
var mongoose = require('mongoose')
, Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
var PostSchema = new Schema({
title: String
, author: String
, body: String
, creataAt: {
type: Date
, default: Date.now
}
});
// other schemas goes here
module.exports.PostSchema = PostSchema;
post.jsで:
var mongoose = require('mongoose')
, PostSchema = require('./schemas').PostSchema
, PostModel = mongoose.model('Post', PostSchema);
module.exports = PostModel;
そしてindex.jsには、次のような行があるかもしれません: var PostModel = require('../models/post');
. 上記のすべてのファイルにはmongooseが必要です。schemas.jsの目的は、プログラマーがデータベースのスキーマを 1 つのファイルで把握できるようにすることです。ただし、この実装により冗長性が生じ、オーバーヘッドが増えるのではないかと思います。あちこちでマングースが必要になるからです。引数として渡す必要がありますか?