Как создать модуль nodejs, который отправляет запрос на отправку URL-адреса и возвращает объект, для которого свойство данных установлено как данные, возвращаемые из запроса на отправку?Установить свойство объекта после асинхронного вызова в узле
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;
}
}
})
EDIT:
В принципе, когда я называю выше модуль и выполнить функцию Cloud:.
вар облако = требуется ('модуль') облако(); console.log (cloud.data); // должен давать мне данные, полученные из почтового запроса. // ТАКЖЕ Я хочу сделать это, используя шаблон модуля, с запросом на отправку внутри модуля.
Вы хотите, чтобы получить некоторые данные по HTTP POST на конкретный URL? Какие возвращаемые данные? JSON, XML и т. Д.? –
Вы не можете напрямую вернуть результат асинхронной операции из своей функции модуля. Вместо этого вы можете передать вызывающему абоненту обратный вызов, который будет вызываться с результатом операции async, или вы можете вернуть обещание, которое будет разрешено с результатом, когда операция async завершится. – jfriend00
Как уже было сказано, то, что вы хотите, невозможно. Вы должны сделать это по-другому (обратный вызов или обещание). –