sto imparando la pila media e quando provo ad avviare il server utilizzandoMongoose schema non è stato registrato per il modello
npm start
ottengo un'eccezione dicendo che:
schema hasn't been registered for model 'Post'. Use mongoose.model(name, schema)
qui è il mio codice all'interno /models/Posts.js
var mongoose = require('mongoose');
var PostSchema = new mongoose.Schema({
title: String,
link: String,
upvotes: { type: Number, default: 0 },
comments: [{ type: mongoose.Schema.Types.ObjectId, ref: 'Comment' }]
});
mongoose.model('Post', PostSchema);
come posso vedere lo schema deve essere registrato per il modello 'post', ma cosa c è possibile che venga generata l'eccezione?
Grazie in anticipo.
Edit: Ecco l'errore di eccezione
/home/arash/Documents/projects/personal/flapper-news/node_modules/mongoose/lib/index.js:323
throw new mongoose.Error.MissingSchemaError(name);
^
MissingSchemaError: Schema hasn't been registered for model "Post".
Use mongoose.model(name, schema)
ed ecco il codice app.js con l'inizializzazione mangusta:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/news');
require('./models/Posts');
require('./models/Comments');
prima della riga:
app.use('/', routes);
Stai commettendo un errore da qualche altra parte. Il codice sopra è valido. Forse stai "require" (ing) 'Post.js' da qualche parte, ma non hai mai" esportato "il modello. –
@NeilLunn ok modifico la domanda con il mio errore di eccezione, perché è tutto ciò che posso leggere da esso. forse altri possono vedere ciò che non posso vedere –
@ Umm. Hai mai "esportato" dove "richiesto" più tardi? Penso che questo sia il codice che manca qui. –