9

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 内) に実際のデータがあることを確認できます。

何かご意見は?

4

3 に答える 3