Questa è la prima volta che scrivo un'app MVC in Node/Express/Mongoose in modo da poter davvero usare un po 'di aiuto. Il mio comando .find() non trova nulla! :(Mangusta Trova non funzionante
La struttura è che ho una cartella/app nella root./Cartella app contiene/models (schemi),/controller e/views in essa e ho app.js all'esterno nella root.
Da qualche parte in app.js:
// all necessary config/setup stuff..
var mongoose = require('mongoose');
mongoose.connect(config.db);
var app = express();
require('./config/routes')(app)
nei miei routes.js il file:
var skills = require('../app/controllers/skills');
app.get('/', skills.showall);
miei skills.js controller contiene:
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;
}
});
}
Infine miei skill.js Modello contiene:
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;
mia vista indice rende, quindi non vedo il contenuto dal mio modello index.jade, ma per qualche motivo il comando find nel modello non è il recupero nulla. Posso confermare che il mio database (in MongoHQ) ha dati reali.
Qualche idea?
Hai usato Mongoose per inserire i dati nel tuo database o ci sono arrivati con altri mezzi? – robertklep
Dall'interfaccia di MongoHQ .. –
In questo caso, è necessario essere consapevoli di come Mongoose assegni alle collezioni i modelli in cui sono memorizzati (ad esempio, un modello di 'Skill' verrà probabilmente memorizzato in una raccolta chiamata' skills'). Vedi [i documenti] (http://mongoosejs.com/docs/guide.html#collection) su come impostare manualmente il nome della raccolta. – robertklep