1
我想換我自己static創建方法裏面的貓鼬Model.create方法:裹Model.create在自定義靜態創建
// File: Task.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var taskSchema = mongoose.Schema({
name: String
});
// Custom static create method
taskSchema.statics.create = function (task) {
console.log('CREATING TASK');
return this.model('Task').create(task); // should call Mongoose `create`, not my custom static.
};
module.exports = mongoose.model('Task', taskSchema);
用法如下:
// Usage:
var Task = require('Task.js');
var promise = Task.create(taskObject); // call custom static `create`.
但是那並不是」工作。它在返回RangeError: Maximum call stack size exceeded
之前多次記錄CREATING TASK
。
我懷疑this.model('Task').create(task)
調用我的自定義靜態create
方法,而不是貓鼬create
方法,從而導致無限循環。例如,如果我將自定義方法重命名爲myCreate
,則一切均按預期工作。
我怎麼能仍然有我的create
方法,但在裏面叫它貓鼬create
呢?
酷,這是真棒:)謝謝! –