如果statment声明var inside并在同一if语句condtion中使用它

时间:2018-03-15 04:06:01

标签: node.js variables if-statement scope

使用nodejs,我从api获取数据。那api有限制率所以我试图制作一些从头部获得限制的东西,如果它们相等则比较最大和当前请求然后不发送请求一段时间,你就明白了。

我在考虑if语句,但条件中的变量是在if语句本身的请求中声明的,如:

if (curr > max - 2){
res.send("limit reached");
return;
}
else{
//use request module to get headers from the api and split header to get 
//max and current count of request then declare them to curr and max
//so when someone else call the same request it compare the old vars
// if the statement is false it do the call and get the new vars
//if it is true it make a delay before next request
}

我知道那是愚蠢的,即使是基本的逻辑,我也很糟糕,我不知道...... 如果有更好的方法,有人可以指出它。谢谢

1 个答案:

答案 0 :(得分:1)

保持直线前进,在您的路线中全局声明变量curr(即,在您的所有请求中)。在您的请求中每次成功的api调用后更新(增量)curr。在每次api通话前检查curr,如果超过限制,则发送错误,否则继续通话。

关键是nodejs中的全局变量在当前路径的整个生命周期中都会持续存在。

假设您正在使用快速服务器。 但是,如果您想限制用户通过应用程序拨打api,则更喜欢使用本地人(app.locals