javascript मैं मोंगोस मॉडल में विधियों को कैसे परिभाषित करूं?




node.js mongodb (4)

आपने यह निर्दिष्ट नहीं किया है कि आप कक्षा या उदाहरण विधियों को परिभाषित करना चाहते हैं या नहीं। चूंकि अन्य ने उदाहरण विधियों को कवर किया है, here's कि आप कक्षा / स्थैतिक विधि को कैसे परिभाषित करेंगे:

animalSchema.statics.findByName = function (name, cb) {
    this.find({ 
        name: new RegExp(name, 'i') 
    }, cb);
}

मेरे locationsModel मॉडल फ़ाइल:

mongoose = require 'mongoose'
threeTaps = require '../modules/threeTaps'

Schema = mongoose.Schema
ObjectId = Schema.ObjectId

LocationSchema =
  latitude: String
  longitude: String
  locationText: String

Location = new Schema LocationSchema

Location.methods.testFunc = (callback) ->
  console.log 'in test'


mongoose.model('Location', Location);

इसे कॉल करने के लिए, मैं इसका उपयोग कर रहा हूं:

myLocation.testFunc {locationText: locationText}, (err, results) ->

लेकिन मुझे एक त्रुटि मिलती है:

TypeError: Object function model() {
    Model.apply(this, arguments);
  } has no method 'testFunc'

Location.methods.testFunc = (callback) ->
  console.log 'in test'

होना चाहिए

LocationSchema.methods.testFunc = (callback) ->
  console.log 'in test'

विधियों को स्कीमा का हिस्सा होना चाहिए। मॉडल नहीं



हम्म - मुझे लगता है कि आपका कोड इस तरह दिखना चाहिए:

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var threeTaps = require '../modules/threeTaps';


var LocationSchema = new Schema ({
   latitude: String,
   longitude: String,
   locationText: String
});


LocationSchema.methods.testFunc = function testFunc(params, callback) {
  //implementation code goes here
}

mongoose.model('Location', LocationSchema);
module.exports = mongoose.model('Location');

फिर आपके कॉलिंग कोड को उपरोक्त मॉड्यूल की आवश्यकता हो सकती है और इस तरह के मॉडल को तुरंत चालू कर सकते हैं:

 var Location = require('model file');
 var aLocation = new Location();

और इस तरह अपनी विधि का उपयोग करें:

  aLocation.testFunc(params, function() { //handle callback here });




mongoose