【发布时间】:2015-09-16 09:16:07
【问题描述】:
我想在模型中使用来自另一个模型的静态方法。但是当我需要其他模型并调用函数时:
TypeError: Cannot read property 'isCalculated' of undefined
所以..不可能在另一个模型中要求一个模型吗? :(
模型在同一个文件夹中,所以我调用
var Confirmation = require("./confirmation").Confirmation;
并确认导出:
module.exports = {
Confirmation: mongoose.model('Confirmation', confirmationSchema)
};
谢谢:)
更新:代码:invoice.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var autoIncrement = require('mongoose-auto-increment');
var Moment = 'Moment';
var moment = require('moment');
var Currency = mongoose.Types.Currency;
var Confirmation = require("./confirmation.js");
autoIncrement.initialize(mongoose.connection);
var invoiceSchema = new Schema({...}); //invoiceSchema
invoiceSchema.statics.insert= function(invoice, cb) {
....
Confirmation.isCalculated(..) //error here
....
}
module.exports = mongoose.model("Invoice", invoiceSchema);
以及代码:confirmation.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Invoice = require("./invoice.js");
var confirmationSchema = new Schema({...});
confirmationSchema.statics.isCalculated = function(pid, aid, cb) {...};
module.exports = mongoose.model('Confirmation', confirmationSchema)
【问题讨论】:
-
你能说明如何/在哪里声明
isCalculated方法吗? -
在确认中:
confirmationSchema.statics.isCalculated = function(pid, aid, cb) {..}) -
你能给出确切的代码吗?例如,如果您在创建模型之后添加该静态方法,则会收到这样的错误。
-
我目前已经看到,我需要在发票中确认(另一个模块)..也许这是问题所在?
-
不一定,但如果没有更多代码就很难分辨。
标签: express mongoose static-methods require