Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
159
rated 0 times [  164] [ 5]  / answers: 1 / hits: 36481  / 11 Years ago, sat, august 24, 2013, 12:00:00

I have a typical Project with Node.js - Express 3 - MongoDB



I'm trying to make a query to my model 'Tweet' in my /routes/index.js and when I run my app crashed



24 Aug 11:35:07 - [nodemon] starting `node app.js`

/Applications/XAMPP/xamppfiles/htdocs/ocesa/fanocesa/node_modules/mongoose/lib/index.js:286
throw new mongoose.Error.MissingSchemaError(name);
^
MissingSchemaError: Schema hasn't been registered for model Teewt.
Use mongoose.model(name, schema)
at Mongoose.model (/Applications/XAMPP/xamppfiles/htdocs/ocesa/fanocesa/node_modules/mongoose/lib/index.js:286:13)
at Object.<anonymous> (/Applications/XAMPP/xamppfiles/htdocs/ocesa/fanocesa/routes/index.js:6:33)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Applications/XAMPP/xamppfiles/htdocs/ocesa/fanocesa/app.js:7:14)
at Module._compile (module.js:456:26)
24 Aug 11:35:07 - [nodemon] app crashed - waiting for file changes before starting...


This is part of my app.js



var mongoose = require('mongoose');

mongoose.connect('mongodb://localhost/fanOcesa');
var Schema = mongoose.Schema;
var ObjectID = Schema.ObjectID;

var Teewt = new Schema({
cuerpo: String
});

var Teewt = mongoose.model('Teewt', Teewt);

var app = express();

app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}

app.get('/', routes.index);
app.get('/users', user.list);


And this is part of my index.js



var Teewt = require('mongoose').model('Teewt');

Teewt.find({}, function(err, docs){
console.log('docs');
console.log(docs);
});

exports.index = function(req, res){
res.render('index', {
docs: docs
});
};


which would be the correct way to do this query?


More From » node.js

 Answers
43

The index.js file is executed where your app.js file calls:



var routes = require('./routes');


So be sure that's being called after your calls to register the 'Teewt' schema as a mongoose model in app.js.


[#76157] Friday, August 23, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
caylasarinag

Total Points: 194
Total Questions: 107
Total Answers: 105

Location: Benin
Member since Sun, Jan 29, 2023
1 Year ago
;