2015-05-14 2 views
0

Я пытаюсь начать с примером котенка на сайте мангустов, но я получаю эту ошибку, говоря:Mongoose примера котенок не работает

process.nextTick(function() { throw err; }) ^TypeError: undefined is not a function

Моего код скопирован из примера на сайте , но это не сработает.

var express = require('express'); 
var mongoose = require('mongoose'); 

mongoose.connect('mongodb://localhost/db'); 


var app = express(); 
var db = mongoose.connection; 

db.on('error', console.error.bind(console, 'connection error:')); 
db.once('open', function (callback) { 

    var kittySchema = mongoose.Schema({ 
     name: String 
    }) 

    var Kitten = mongoose.model('Kitten', kittySchema) 

    var silence = new Kitten({ name: 'Silence' }) 
console.log(silence.name) // 'Silence' 

// NOTE: methods must be added to the schema before compiling it with mongoose.model() 
kittySchema.methods.speak = function() { 
    var greeting = this.name 
    ? "Meow name is " + this.name 
    : "I don't have a name" 
    console.log(greeting); 
} 

var Kitten = mongoose.model('Kitten', kittySchema) 

var fluffy = new Kitten({ name: 'fluffy' }); 
fluffy.speak() // "Meow name is fluffy" 
}); 

app.get('/', function(req, res) { 
    res.send('hello world'); 
}); 

app.get('/secret', function(req, res) { 
    res.send('secret page'); 
}); 

var port = process.env.PORT || 1337; 

app.listen(port, function() { 
    console.log('http://127.0.0.1:' + port + '/'); 

}); 

Я сожалею, если ответ очевиден, но я только начал с Node.js и нужна помощь, чтобы повесить его.

Заранее спасибо.

UPDATE: полное сообщение об ошибке

/Users/joseph/Documents/Atom-files/node_modules/mongoose/node_modules/mongodb/lib/server.js:274 
     process.nextTick(function() { throw err; }) 
             ^
TypeError: undefined is not a function 
    at NativeConnection.<anonymous> (/Users/joseph/Documents/Atom-files/test/app.js:18:17) 
    at NativeConnection.g (events.js:199:16) 
    at NativeConnection.emit (events.js:104:17) 
    at open (/Users/joseph/Documents/Atom-files/node_modules/mongoose/lib/connection.js:485:10) 
    at NativeConnection.Connection.onOpen (/Users/joseph/Documents/Atom-files/node_modules/mongoose/lib/connection.js:494:5) 
    at /Users/joseph/Documents/Atom-files/node_modules/mongoose/lib/connection.js:453:10 
    at /Users/joseph/Documents/Atom-files/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:59:5 
    at /Users/joseph/Documents/Atom-files/node_modules/mongoose/node_modules/mongodb/lib/db.js:206:5 
    at connectHandler (/Users/joseph/Documents/Atom-files/node_modules/mongoose/node_modules/mongodb/lib/server.js:272:7) 
    at g (events.js:199:16) 
    at emit (events.js:107:17) 
    at /Users/joseph/Documents/Atom-files/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:374:23 
    at /Users/joseph/Documents/Atom-files/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:730:13 
    at Callbacks.emit (/Users/joseph/Documents/Atom-files/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:84:3) 
    at null.messageHandler (/Users/joseph/Documents/Atom-files/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:219:23) 
    at Socket.<anonymous> (/Users/joseph/Documents/Atom-files/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:259:22) 
14 May 21:02:09 - [nodemon] app crashed - waiting for file changes before starting... 

ответ

3

Вы компилируете схему дважды, и один из тех времен, прежде чем определить метод. Эта линия специально:

var Kitten = mongoose.model('Kitten', kittySchema) 

Вам нужно ждать, пока после того, как вы определили ваш kittySchema.methods перед компиляцией его mongoose.model. Ваш собственный код комментарий говорит вам не делать этого :)

Кроме того, для дальнейшего использования, ошибка TypeError: undefined is not a function вставили не много пользы, но стек вызовов ниже, это, где он указывает на то, что пушистые has no method 'speak'.

+0

Я пробовал удалить первую строку «mongoose.model», но она все равно не будет работать. Кроме того, нет строки с «не имеет способа« говорить ». – joseph

+0

«все равно не сбежит» - позаботиться о разработке? –

+0

Теперь я добавил полное сообщение об ошибке. – joseph

Смежные вопросы