我的应用程序nodejs + express必须向另一台服务器发出请求以建立他的答案。此请求将被大量使用。我想把它放在一个模块中。我正在使用requestjs模块。我可以构建我的查询并在控制台中获得正确的结果。但我无法将此代码合并到我可以调用的模块中。处理传入请求有很多例子,但传出请求很少。我该如何构建这个模块。我知道如何做简单的模块而不是这个。此代码不起作用。谢谢你的帮助
var request = require("request") ;
request ("http://example.com", function(error, response, body) {
myInformation = JSON.parse (body) ;
mytoken = myInformation.token
console.log(mytoken);
});
exports.myTest = function () {
return myToken ;
};
答案 0 :(得分:0)
不确定,但我认为你需要这样的东西
module.exports = function() {
var request = require("request") ;
return {
requestBuilder: function(url) {
let token;
request (url, function(error, response, body) {
myInformation = JSON.parse (body) ;
token = myInformation.token
});
return token;
}
}
}
// Use this module as
const token = require('<request module file name>')(url);
答案 1 :(得分:0)
你的模块看起来像这样
let request = require("request");
exports.handler = callback => {
request("http://example.com", function(error, response, body) {
//call the callback with anything you want
callback(response);
});
};
然后你需要在任何你想要的地方
const { handler } = require('path to your module')
handler(param => {
console.log(param)
// do things with the params you sent from your module
})
答案 2 :(得分:-1)
这样,不起作用吗?请输入你的答案而不是,它显示的错误是什么,请?
var exports = module.exports = {};
let promise = new Promise((resolve, reject) => {
var request = require("request");
request ("http://example.com", function(error, response, body) {
myInformation = JSON.parse (body) ;
mytoken = myInformation.token
resolve(mytoken);
console.log(mytoken);
});
});
exports.getRequestObj = promise;
稍后,在导入该函数后,您将...
//With this way, you can recover your value
exportFunction.getRequestObj.then((res) => {
console.log(res)
})