Я новичок в node.js и пытаюсь сделать простой REST-клиент node.js, который будет действовать как SDK между API и более крупным приложением.
Это текущий код в клиентской части SDK, соответствующей index.js
:
var unirest = require('unirest');
var config = require('config');
var host = config.get('api.host');
unirest.get(host + '/api/products?_format=json')
.headers({'Accept': 'application/json', 'Content-Type': 'application/json'})
.end(function (response) {
console.log(response.body);
module.exports.getProducts = function() {
return response.body;
}
});
Если я выполняю в терминале: node index.js
команда console.log
возвращает ожидаемый результат от вызова API
Однако, если я устанавливаю пакет в основной проект (как локальную зависимость), он не работает.
Вот код из index.js
в основном проекте:
var SDK = require('api-sdk-js');
var result = SDK.getProducts;
console.log(result);
В этом случае, когда я выполняю node index.js
, команда console.log
возвращает undefined
для переменной result
, я подозреваю, что это связано с тем, что вызов GET
в SDK является асинхронным, поэтому он возвращает значение до получения ответа.
Я не уверен, как это исправить, какие-либо предложения?
В качестве альтернативы мне также подойдет хороший пример клиента REST API в node.js в качестве SDK (т. Е. В качестве пакета, который можно установить из другого проекта).