如何创建一个nodejs模块,该模块将一个post请求发送到url并返回一个对象,该对象的data属性被设置为post请求返回的数据?
var client = require('node-rest-client').Client();
module.exports = (function(){
var instance;
function createInstance(){
client.post(url,function(data){
//set instance.data = data OR
// return function that lets me access a private property 'data' set to data returned in this callback
});
}
return {
Cloud : function(){
if(!instance){
instance = createInstance();
}
return instance;
}
}
})
编辑:
基本上当我调用上面的模块并执行Cloud函数时:
var cloud = require('module')。Cloud(); 的console.log(cloud.data); //应该给我从邮寄请求中收到的数据。 //我也想使用模块模式执行此操作,并在模块中使用post请求。
答案 0 :(得分:0)
您可以使用承诺,例如:
function postReq() {
return new Promise(function(resolve, reject) {
client.post(url, function(data) {
resolve(data);
})
});
}
postReq()
.then(function(data) {
// Do whatever you want with the data returned from client.post
console.log(data);
})