HapiJS Route Обратный ответ от запроса - PullRequest
0 голосов
/ 27 марта 2019

Я использую модуль запроса и делаю успешный запрос. Я получаю ответ обратно, но не могу понять, как вернуть этот ответ обратно в мой маршрут, чтобы вернуться к моему клиенту.

Мой маршрут:

'use strict';

const displayBuild = require('../lib/display-build');

module.exports = {
    method: ['PUT', 'POST'],
    path: '/displayBuild',
    handler: function(request, h) {
        console.log('Displaying build config...');
        console.log(request.payload)
        try {
            displayBuild(request, h);
            console.log("h:", h)
            return {'success': 201}
        } catch (err) {
            console.log(err);
            return {'ERR': err}
        }
    }
};

Функция displayBuild:

var request = require('request');
var URL = "url"

const displayBuild = function (req, res) {
    var options = {
        uri: URL,
        method: 'POST',
        headers: {
            "content-type": "application/json"
        },
        json: req.payload
    };
    request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log('success')
        } else {
            console.log('ERROR:', error)
            throw error
        }
        return body;
    });
}

module.exports = displayBuild;

Очевидно, что return body недостаточно.

Я хотел бы вернуть тело обратно на мой маршрут и вернуть его обратно в качестве ответа моему клиенту.

Спасибо !!

1 Ответ

0 голосов
/ 27 марта 2019

Я решил это сам, используя функции async и await.То, что я сделал, сделало функцию-обработчик асинхронной функцией

async (request, h) => {
...
var body = await displayBuild(...)
}

и вернула новое Promise из функции displayBuild.

Напишите мне, если кто-то хочет получить объяснение более низкого уровня.

...