【问题标题】:What am I missing with this API connection request string?这个 API 连接请求字符串缺少什么?
【发布时间】:2020-11-08 16:24:55
【问题描述】:

我的 api_key 在“.env”中。我可能想多了。这是我目前的代码,可以在不隐藏 api_key 的情况下工作。当我从 process.env.API_KEY 中提取时,我的语法不正确。

function call_api(finishedAPI, ticker) {
    request('https://cloud.iexapis.com/stable/stock/' + ticker + '/quote?token= + 'api_key', { json: true }, (err, res, body) => {
        if (err) {return console.log(err);}
        if (res.statusCode === 200){
           finishedAPI(body);
        };
    });
};

我知道有一种更简单的方法可以做到这一点,而且我对谷歌提示的研究并不是在所有气缸上都开火。我会给你买星巴克的咖啡或番茄罗勒帕尼尼 :-)

【问题讨论】:

    标签: api ticker


    【解决方案1】:

    应该是。看起来您尝试错误地使用回调。

    注意不过,很容易告诉您应该始终说明使用的语言。只是让每个人都轻松。

    function call_api(ticker, finishedAPI) {
        request({url: 'https://cloud.iexapis.com/stable/stock/' + ticker + '/quote?token= + 'api_key'}, { json: true }, (err, res, body) => {
            if (err) {return console.log(err);}
            if (res.statusCode === 200){
               finishedAPI(body);
            };
        });
    };
    
    function main(){
      call_api(ticker, function(fromCallapi){
         if(fromCallapi) console.log(fromCallapi);
      })
    }
    

    回调将在另一个方法或操作中被调用,并在操作完成后返回给调用者,将进程、变量或方法传回给它的调用者。

    注意 参数finishedAPI 应重命名为callback 最佳实践表明进程、变量或方法会将结果返回给调用者。请注意,过度使用回调可能会整体影响您的应用程序的性能,并且可能会挂起进程。希望有帮助

    更新

    如果您计划使用.env,则需要在加载后使用require('dotenv').config(path: '/path/to/.env'),例如访问名为VARIBLE_NAME 的变量,您可以使用process.env.VARIBLE_NAME 访问环境变量

    【讨论】:

    • 感谢您的回复。我了解回调函数的工作原理。我无法从将 api_key 包含在 .env 中的最佳方式中“解脱”
    【解决方案2】:

    function call_api(finishedAPI,ticker) { request('https://cloud.iexapis.com/stable/stock/' + ticker + '/quote?token=' + API_KEY, { json: true }, (err, res, body) => { if (err) {return console.log(err);} 如果(res.statusCode === 200){ 完成API(主体); }; }); };

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2019-07-22
      相关资源
      最近更新 更多