2014-07-23 7 views
9

मैं एक नया नमूना आवेदन बना रहा हूं, जहां मैं मोंगोस के माध्यम से एक मोंगोडीबी डेटाबेस से कनेक्ट करने का प्रयास करता हूं।मोंगोस और नई स्कीमा: रिटर्न "संदर्भ त्रुटि: स्कीमा परिभाषित नहीं है"

मैं अपने service.js फ़ाइल में एक नया स्कीमा बनाने के लिए, लेकिन जब मैं nodemon app.js चलाने मैं निम्नलिखित त्रुटि मिलती है: "ReferenceError: Schema is not defined"

App.js कोड:

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); 
    }); 
}); 

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); 
    }); 
}; 

मैंने एक उत्तर देखा StackOverflow पर ere है कि संदर्भित यह Mongoose का संस्करण हो सकता है। लेकिन npm list मुझे इस देता है:

enter image description here

किसी भी विचार मैं गलत क्या कर रहा हूँ?

उत्तर

21

बिल्कुल, आपके Service.js में, Schema क्या है? आपके पास Schema नामक ऑब्जेक्ट नहीं है।

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

इसे mongoose.Schema में बदलें तो यह ठीक होगा।

+1

आप पर दूसरी पंक्ति

वर स्कीमा = इस तरह स्कीमा को परिभाषित करना भूल गया या 'जोड़ने वर स्कीमा = mongoose.Schema;' नीचे वर नेवला = reguire ('नेवला' '); ' –

+0

@anvark - कूल, मैं भी इसे याद कर रहा था .. –

+0

कमाल !!! धन्यवाद –

0

आप mongoose.Schema

+0

क्षमा करें, यह उत्तर मौजूदा में कोई भी नया नहीं जोड़ता है। – Vasan

संबंधित मुद्दे