【发布时间】:2019-04-10 00:48:45
【问题描述】:
我有一个快速应用程序,我只是从另一个远程 API 返回数据。下面是文件sn-p。我不能使用普通的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;
一切正常。
现在,我想在一个名为 getData 的函数中在 router 方法之外进行远程 API 调用。
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 方法没有返回我可以解决的 Promise。
【问题讨论】:
标签: javascript node.js express