Вызов функции из другой функции в module.exports nodeJS - PullRequest
0 голосов
/ 14 июля 2020

Я хочу вызвать функцию getData из функции single_view. в приведенном ниже коде вывод getData возвращается как undefined

var request = require("request");

module.exports = {
    getData: (url) => {
        request(url, function (error, response, body) {
            if (!error && response.statusCode == 200) {
                return {success: false, data: JSON.parse(body)};
            }
            else{
                return {success: false, data: "API call failed"};
            }
        });
    },
    singleView: (req, res) => {
        var post_url = "http://example.in/wp-json/wp/v2/posts?slug="+req.params.postSlug;
        var post_api_data = module.exports.getData(post_url);
        if(post_api_data['success'] == true && post_api_data['data'].length > 0){
    }
}

В контроллере singleView маршрут возвращает undefined. Как это исправить?

1 Ответ

0 голосов
/ 14 июля 2020

Вам необходимо использовать async / await.

Я бы рекомендовал вам использовать ax ios вместо запроса.

const axios = require("axios");

module.exports = {
    getData: async (url) => {
        let result = await axios({url: url, method: 'GET'});
        return result.data;
    },
    singleView: (req, res) => {
        var post_url = "http://tmccms.ajency.in/wp-json/wp/v2/posts?slug="+req.params.postSlug;
        var post_api_data = await module.exports.getData(post_url);
        if (post_api_data['success'] == true && post_api_data['data'].length > 0){
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...