スコープ内のすべての関数で関数を使用するために関数のグローバル変数を設定しようとしています。機能はasync.series
を使って次々と呼ばれています:関数スコープ内のグローバル変数が機能しない - async.series
exports.update = function(req, res, next){
var result = {}; // setting global var for the scope
var function1 = function(callback) {
MyModel.findOne(conditions)
.lean()
.exec(function(err, docs) {
if (err) {
return callback(err, null);
}
result.docs = docs; // assigning function result to global var
return callback(null, 'done');
});
};
var function2 = function(callback) {
var fieldsToSet = {
// ...
somefield: result.docs.someproperty // error here result.docs = null
};
Mymodel.create(fieldsToSet, function(err, record) {
// ...
});
};
};
require('async').series([function1, function2]);
};
戻り値のエラー:
TypeError: Cannot read property 'someproperty' of null
この場合には、私はプロパティを取得する方法?ありがとうございました。
result.docsの中に何かがありますか? – sheplu
最初の関数に戻ってきた 'docs'のようなサウンドは' null'です。それ以外の場合は、 'undefined'でプロパティを読み込もうとしているというエラーが発生します。 –
奇妙なこと - 主な機能は実際には動作しますが、エラーが発生します。サーバーを再起動した後、私は必要なものを手に入れます。 – ASem