У меня есть экспресс-приложение, в котором я просто возвращаю данные из другого удаленного API.Ниже приведен фрагмент файла.Я не могу использовать обычный node-fetch
или request
, так как мой удаленный API использует NTLM-аутентификацию.
const express = require('express');
const router = express.Router();
const httpntlm = require('httpntlm');
const url = 'http://myremoteapi.com/products';
router.get('/', function(req, res, next) {
httpntlm.get(
{
url,
username: 'my_user',
password: 'my_pass
},
(err, resp) => {
if (err) return err;
res.send(JSON.parse(resp.body));
}
);
});
module.exports = router;
Все работает нормально.
Теперь я хотел бы взятьудаленный вызов API вне метода router
в функции с именем getData
.
const express = require('express');
const router = express.Router();
const httpntlm = require('httpntlm');
const url = 'http://myremoteapi.com/products';
const getData = httpntlm.get(
{
url,
username: 'my_user',
password: 'my_pass
},
(err, resp) => {
if (err) return err;
return JSON.parse(resp.body);
}
);
router.get('/', function(req, res, next) {
res.send(getData) // returns undefined
});
module.exports = router;
Я не могу получить тот же результат.Кроме того, я обнаружил, что метод httpntlm
не возвращает Обещание, которое я могу разрешить.