2014-07-23 15 views
9

Tworzę nową przykładową aplikację, w której próbuję połączyć się z bazą MongoDB poprzez Mongoose.Mongoose and new Schema: zwraca "ReferenceError: Schemat nie jest zdefiniowany"

utworzyć nowy schemat w moim pliku service.js, ale pojawia się następujący komunikat o błędzie podczas uruchamiania nodemon app.js: "ReferenceError: Schema is not defined"

App.js kod:

var http = require('http'); 
var express = require('express'); 
var serials = require('./service'); 
var app = express(); 
var mongoose = require('mongoose'); 


var port = 4000; 
app.listen(port); 

mongoose.connect('mongodb://localhost:27017/serialnumbers') 

app.get('/api/serials',function(req,res){ 
    serials.getSerial(req, res, function(err, data) { 
     res.send(data); 
    }); 
}); 
kod

Service.js:

var mongoose = require('mongoose'); 

var serialSchema = new Schema({ 
    serial: {type: String}, 
    game: {type: String}, 
    date: {type: Date, default: Date.now}, 
}); 
mongoose.model('serials', serialSchema); 

exports.getSerial = function(req,res,cb) { 
    mongoose.model('serials').find(function(err,data) { 
     cb(err,data); 
    }); 
}; 

Widziałem odpowiedź h Na StackOverflow, które się do niego odwoływały, mogłaby być wersja Mongoose. Ale npm list daje mi to:

enter image description here

Każdy pomysł co robię źle?

Odpowiedz

21

Dokładnie, w swoim Service.js, co to jest Schema? Nie masz obiektu o nazwie Schema.

... 
var serialSchema = new Schema({ 
         ^^^^^^ 

zmienić na mongoose.Schema, będzie w porządku.

+1

Albo dodać 'var schematu = mongoose.Schema;' 'poniżej var mangusta = reguire ('mangusty'); ' –

+0

@anvark - Cool, ja też tego brakowałem .. –

+0

niesamowite! dziękuję –

0

zapomniałeś zdefiniować schemat jak to na ciebie druga linia

var schematu = mongoose.Schema

+0

Niestety, ta odpowiedź nie dodaje nic nowego do istniejącej. – Vasan

Powiązane problemy