所以这很可能很简单,但我花了一整天的时间尝试不同的方法并在谷歌上搜索解决方案。
出于某种原因,当我将 + 与 2 个数字一起使用而不是将数字加在一起时, Node 正在连接数字。
Company.findById(req.id, (err, doc) => {
if (err) {
callback(err, err);
} else {
var i = doc.TotalGranted; // i.e number value of 200
var e = doc.TotalAvailable; // i.e number value of 200
var newTotalgranted = i + req.newNumber; // i.e number value of 100
var newAvailable = e - req.newNumber; // i.e number value of 100
doc.TotalGranted= newTotalgranted;
doc.TotalAvailable= newAvailable;
doc.save((err, doc) => {
if (err) {
callback(err, err);
}
callback(null, 'success');
});
}
});
现在不再是totalgranted = 300,而是等于200,100
如果这里有帮助的话是从 mongo 返回的文档的相关部分,这些不包含在数组中
TotalAvailable: 200,
TotalGranted: 200,
newNumber: '100',
新数字是一个字符串,但它实际上也来自返回的文档。所以也许我需要从字符串转换 newNumber 我已经尝试过但无法解决。
最佳答案
尝试,
Company.findById(req.id, (err, doc) => {
if (err) {
callback(err, err);
} else {
var i = doc.TotalGranted; // i.e number value of 200
var e = doc.TotalAvailable; // i.e number value of 200
var newTotalgranted = (i + (req.newNumber * 1)); // i.e number value of 100
var newAvailable = (e - (req.newNumber * 1); // i.e number value of 100
doc.TotalGranted= newTotalgranted;
doc.TotalAvailable= newAvailable;
doc.save((err, doc) => {
if (err) {
callback(err, err);
}
callback(null, 'success');
});
}
});
关于javascript - 使用nodeJS添加数字时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48679608/