Node/Express/Mongoose で MVC アプリを作成するのはこれが初めてなので、本当に助けが必要です。私の .find() コマンドは何も見つかりません! :(
構造は、ルートに /app フォルダーがあることです。/app フォルダーには、/models (スキーマ)、/controllers、および /views が含まれています。そして、ルートの外に app.js があります。
app.js のどこかに:
// all necessary config/setup stuff..
var mongoose = require('mongoose');
mongoose.connect(config.db);
var app = express();
require('./config/routes')(app)
私のroutes.jsファイルでは:
var skills = require('../app/controllers/skills');
app.get('/', skills.showall);
私のコントローラーのskills.jsには以下が含まれています:
var Skill = require('../models/skill');
exports.showall = function(req, res) {
Skill.find({}, function(err, docs){
if (!err) {
res.render('index', {title: 'Skilldom', skills: docs});
}
else {
throw err;
}
});
}
最後に、私の Model skill.js には以下が含まれます。
var mongoose = require('mongoose');
//Skill schema definition
var skillSchema = new mongoose.Schema({
name: String,
length: String,
});
var Skill = mongoose.model('Skill', skillSchema);
module.exports = Skill;
index ビューがレンダリングされるため、index.jade テンプレートのコンテンツが表示されますが、何らかの理由でモデルの find コマンドが何も取得していません。データベース (MongoHQ 内) に実際のデータがあることを確認できます。
何かご意見は?