mean.jsスタックアプリケーションで作業しています。私のモデルの静的関数を呼び出そうとすると、 'SomeItem.createNewは関数ではありません'というエラーが表示されます。静的関数を呼び出すと '関数ではありません'が返されます
私はこのような静的メソッドを別のスキーマの別の静的メソッドから呼びます。
は動作しません:
var SomeItem = require('./some-item.js');
aSchema.statics.createNew = function(body, cb) {
var newA = new this();
//create child items
for (i = 0; i < body.someItems.length; i++ {
SomeItem.createNew(body.someItems[i], function(err, item) {
}
}
は動作しません。しかし
aSchema.statics.createNew = function(body, cb) {
var newA = new this();
var SomeItem = require('./some-item.js');
//create child items
for (i = 0; i < body.someItems.length; i++ {
SomeItem.createNew(body.someItems[i], function(err, item) {
}
}
を、私はそれが正常に動作し、静的な関数の内部で必要に配置する場合。どうしてこれなの?私はそれを使用する必要があるすべての関数ではなく、一番上に一度だけ 'var SomeItem'を宣言する必要があります。
何らかの理由で、私のapp.jsファイルのrequireモジュールの順序を変更して、aSchemaのファイルが最初に呼び出されたときに問題が解消されました。私のapp.jsファイルは、someItemのファイルを呼び出したaSchemaのファイルを呼び出したmy apiファイルを呼び出しました。これで私の問題が解決された理由はもう分かりませんか? – Sean