Получить запрос строки из базы данных API запроса - PullRequest
0 голосов
/ 18 декабря 2018

Я создаю бот-телеграмму.Я не могу соединить свой API с ботом telegram

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 запроса, который является строкой из моей базы данных.Но я не могу получить результат вне функции запроса.

Я действительно хочу сделать вывод в боте telegram.поскольку функцию бота telegram нельзя использовать внутри функции запроса.

Так что я думаю получить результат из запроса.Но я не могу получить результат, превосходящий функцию.

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

Пожалуйста, помогите мне.Заранее спасибо.

1 Ответ

0 голосов
/ 18 декабря 2018

Вам нужна глобальная переменная и оператор 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);

Однако я предупрежу вас, что глобальные переменные обычно не одобряются.И вот почему: http://wiki.c2.com/?GlobalVariablesAreBad

Полезная ссылка для изучения глобальных переменных: https://stackabuse.com/using-global-variables-in-node-js/

Полезная ссылка для изучения ожиданий и асинхронности: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await

...