Javascript 结果总是不是一个数字

Javascript 结果总是不是一个数字,javascript,node.js,parseint,Javascript,Node.js,Parseint,我对下面的代码有问题。当我给代码提供合适的整数和字符串值时,结果总是不是数字。我尝试将整数乘以*1,还尝试将整数var解析为int,但没有任何效果 module.exports = async function CalculateUV(context, req) { context.log('JavaScript HTTP trigger function processed a request.'); const stringA = (req.query.string

我对下面的代码有问题。当我给代码提供合适的整数和字符串值时,结果总是不是数字。我尝试将整数乘以*1,还尝试将整数var解析为int,但没有任何效果

module.exports = async function CalculateUV(context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

   
    const stringA = (req.query.stringA || (req.body && req.body.stringA));
    const stringB = (req.query.stringB || (req.body && req.body.stringB));
    const stringC = (req.query.stringC || (req.body && req.body.stringC));

    var integerA = (req.query.integerA || (req.body && req.body.integerA));
    var integerB = (req.query.integerB || (req.body && req.body.integerB));
    var integerC = (req.query.integerC || (req.body && req.body.integerC));
    var integerD = (req.query.integerD || (req.body && req.body.integerD));
  
    

    var result;

    if (stringA == 'hello' && stringB == 'world') {

       switch (stringC) {
                case 'one':
                    result = 0;
                    break;
                case 'two':
                    result = (integerA + integerB) * (+integerD / 100);
                    break;
                case 'three':
                    result = (integerA + integerB) * (intergerD / 100);
                    break;
                case 'four':
                    result = (integerC) * (integerD / 100);
                    break;
                default:
                    result = 0;
            }
    }
    else {
        result = 'Error';
    }
    
     context.res = {
       // status: 200, /* Defaults to 200 */
        body: 'The result value is:' + result
     };
}
这样做:

结果=(+integerA++integerB)*(integerD/100); 中断

或者

结果= 在加法过程中使用数字字符串时需要小心。Req.query是一个字符串,即使您在查询中输入了一个数值。 这可能就是为什么你会得到一个NaN,因为你把一个字符串和一个数字相乘


其他运算符(*,/,-)不执行此操作。因此无需为他们执行此操作。

req.query.x始终是一个字符串(因为它是从url导出的)。您需要将其解析为Int:

函数计算器(req){
常量stringA=(req.query.stringA | |(req.body&&req.body.stringA));
常量stringB=(req.query.stringB | |(req.body&&req.body.stringB));
常量stringC=(req.query.stringC | |(req.body&&req.body.stringC));
var integerA=(parseInt(req.query.integerA,10)| |(req.body&&req.body.integerA));
var integerB=(parseInt(req.query.integerB,10)| |(req.body&&req.body.integerB));
var integerC=(parseInt(req.query.integerC,10)| |(req.body&&req.body.integerC));
var integerD=(parseInt(req.query.integerD,10)| |(req.body&&req.body.integerD));
var结果;
if(stringA=='hello'&&stringB=='world'){
开关(stringC){
案例一:
结果=0;
打破
案例二:
结果=(整数+整数b)*(+integerD/100);
打破
案例三:
结果=(整数+整数b)*(整数/100);
打破
案例四:
结果=(整数)*(整数/100);
打破
违约:
结果=0;
}
}否则{
结果='错误';
}
常数res={
body:'结果值为:'+result
};
控制台日志(res);
}
常数要求={
查询:{
斯特林加:“你好”,
stringB:‘世界’,
stringC:'三',
整数:“1”,
整数B:'2',
整数'3',
整数:“4”,
},
正文:{
斯特林加:“四”,
stringB:'五',
stringC:'六',
积分:5,
整数b:6,
整数c:7,
整数:8,
},
}
计算单位价值(req)
用波纹管更换上述管路

     var integerA = parseInt(req.query.integerA || (req.body && req.body.integerA));
var integerB = parseInt(req.query.integerB || (req.body && req.body.integerB));
var integerC = parseInt(req.query.integerC || (req.body && req.body.integerC));
var integerD = parseInt(req.query.integerD || (req.body && req.body.integerD));
result = (integerA + integerB) * (integerD / 100);
同样,在整数之前移除+,如下面的波纹管

     var integerA = parseInt(req.query.integerA || (req.body && req.body.integerA));
var integerB = parseInt(req.query.integerB || (req.body && req.body.integerB));
var integerC = parseInt(req.query.integerC || (req.body && req.body.integerC));
var integerD = parseInt(req.query.integerD || (req.body && req.body.integerD));
result = (integerA + integerB) * (integerD / 100);

它现在应该可以工作了

请分享
stringA
stringB
stringC
integerA
integerB
integerC
integerD
-console.log将是获取这些值的最佳方法。这些值其实并不重要,它们只是自然正数和短字符串。例如:IntegerA=100 IntegerB=1000 IntegerC=50 IntegerD=40 StringA=hello StringB=world StringC=one、two、three或fourrequest。查询值始终为stirng。您需要像这样使用它:
parseInt(req.query.integerA)
etcAlready尝试了parseInt,它不工作。您在哪里尝试过它?