从请求API数据库获取行查询

时间:2018-12-18 04:08:13

标签: javascript node.js api request telegram-bot

我正在制作电报机器人。我无法将API与电报机器人连接

const request = require('request');
request('http://127.0.0.1/api/product/read.php', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    const h = JSON.parse(body);
    const t = h.title || '';

    hasil = h.records;
    console.log(hasil);
    console.log(h);
    // //  console.log(t);
  }
});

console.log('asd' + hasil);
console.log(h);

我想从请求API获得结果,该请求API是数据库中的行。但是我无法在request函数之外得到结果。

我实际上想在电报bot中进行输出。因为电报bot功能不能在request函数内部使用。

所以我正在考虑从请求中获取结果。但是我无法获得比函数更好的结果。

console.log(hasil); // the output is here
console.log('asd'+hasil); // but this is nothing.

请帮助我。预先感谢。

1 个答案:

答案 0 :(得分:-1)

您需要的是全局变量和await语句,以使异步过程同步。

let hasil = undefined; //Global variable that you can access anywhere.
const request = require('request');
await request('http://127.0.0.1/api/product/read.php', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    const h = JSON.parse(body);
    const t = h.title || '';

    hasil = h.records;
    console.log(hasil);
    console.log(h);
    // //  console.log(t);
  }
});

console.log('asd' + hasil);
console.log(h);

但是,我会警告您,全局变量通常不被接受。 原因如下:Channel

了解全局变量的有用链接:http://wiki.c2.com/?GlobalVariablesAreBad

有用的链接来了解等待和异步:https://stackabuse.com/using-global-variables-in-node-js/