0
我得到這個錯誤得到一個CastError的NaN的數
{ [CastError: Cast to Number failed for value "NaN" at path "area"]
message: 'Cast to Number failed for value "NaN" at path "area"',
name: 'CastError',
kind: 'Number',
value: NaN,
path: 'area' } } }
此代碼
MySchema.methods = {
updateArea: function (oldArea, newArea) {
var self = this;
self.area = self.area - oldArea + newArea;
return self.save(function (err) {
if (err) {
console.log(err);
return err;
}
});
}
};
然而,當我登錄將typeof self.area,它給了我號碼。我正在測試並意識到,通過將其轉換爲數字,它有時可以工作。例如,加入這個工作並沒有給出錯誤:
var test = Number(self.area);
self.area = test;
所以它看起來像
MySchema.methods = {
updateArea: function (oldArea, newArea) {
var self = this;
self.area = self.area - oldArea + newArea;
var test = Number(self.area);
self.area = test;
return self.save(function (err) {
if (err) {
console.log(err);
return err;
}
});
}
};
然而,即使是簡單的鑄造它作爲一個號碼前面給出了一個錯誤,用一條線就像
self.area = Number(self.area - oldArea + newArea);
,使其整體看起來像
MySchema.methods = {
updateArea: function (oldArea, newArea) {
var self = this;
self.area = Number(self.area - oldArea + newArea);
return self.save(function (err) {
if (err) {
console.log(err);
return err;
}
});
}
};
仍然會給出錯誤。
任何人都知道這是怎麼回事?
良好的通話 - 'oldArea'未定義。有趣的是,'self.area'仍然給出了一個數字,當我登錄typeof時,它仍然給出'數字'。你知道這是爲什麼嗎? 另外,如果你想發表你的評論作爲答案,我很高興接受它! –