我在Node.JS应用程序中有代码,但仅部分工作。
虽然我想我已经知道哪种情况有问题,但我不知道解决问题的正确方法。
下面是问题的相关代码:
app.get('/Path', (req, res) => {
.....
let kickVal = req.url.substring(9,14) // Extracting a 5 digits string from the URL.
// Instead of the line above, I have also tried to use querystring to get the value for kickVal, but it did not work any better.
.....
doSomeUsefulStuff(res,kickVal)
})
function doSomeUsefulStuff(response,kickStr=null) {
... do some work using kickStr ...
// Here kickStr does not always shows up as expected.
}
例如,当使用:
网址:http://localhost:3000/路径?
网址:http://本地主机:3000/路径?
那么一切都很好,我得到了值,10234 和 31204,用于 doSomeUsefulStuff 中的 kickStr。
但使用时:
网址:http://本地主机:3000/路径?
网址:http://本地主机:3000/路径?
我在第一种情况下得到 675,在第二种情况下得到 2201,而我期望的是字符串 '01243' 和 '04231'。
一般来说,当数字串包含前导零时,就会出错。我怀疑这是因为req.url不是一个简单的字符串。但是解决这个问题的正确方法是什么呢?
需要注意的是,我没有做任何类型的Ints转换,上面的代码(kickVal = req.url.substr...)是我提取值(kickVal)的唯一代码,为什么这不起作用当然是我的第一个问题。
1条答案
按热度按时间jgwigjjp1#
我终于发现了是什么让事情变得糟糕。我需要在 kickVal 周围加引号。
换句话说,代替这行代码的是:
我不得不用这个:
一切都解决了。