我在節點上很新,所以我可能會談論這一切都是錯誤的(如果我是,不要害怕說) - 我希望能夠創建一個對象由來自幾個不同的休息服務器的數據組成,並將最終對象返回給我的調用函數。對於每一個REST API我有一個看起來有點像這樣一個功能:來自REST調用的返回對象
jobs.js
exports.get_users_jobs = function(options, onResult) {
var user = options.params.user;
console.log("Get jobs for user: " + user);
var optionsget = {
host: config.jobs_rest_host,
port: config.jobs_rest_port,
path: "/jobs3/user/" + user,
method: "GET",
headers: {
'Content-Type': 'application/json'
}
};
var reqGet = http.request(optionsget, function(res) {
var output = '';
res.setEncoding('utf-8');
res.on('data', function(chunk) {
output += chunk;
});
res.on('end', function() {
var obj = JSON.parse(output);
onResult.send(res.statusCode, obj);
});
});
reqGet.end();
reqGet.on('error', function(e) {
console.error('error: ' + e.message);
});
};
這時候,我直接從瀏覽器調用它,但現在我想工作正常從另一個函數調用get_users_jobs,將數據和plonk放入我的超級對象中。所以我創建的東西有點像這樣(我只把工作在那裏了,但很快就會有其他變量)
users.js
var jobs = require('./jobs.js');
function User (jobs) {
this.jobs = jobs;
}
User.prototype.jobs = null;
/* lots of stuff that I don't think matters */
jobs_data = jobs.get_cb_users_jobs(req, res);
var u = User(jobs_data);
/* do lots of stuff with u like prepare reports etc */
但所發生的一切這是我的工作數據輸出在瀏覽器(這是有道理的,因爲我有onResult.send(等等) - 我怎樣才能構建我的get_users_jobs函數,只是從其餘呼叫返回數據?
在此先感謝任何人這可以幫助!
這正是我所需要的!謝謝! (我來自java,所以回調概念對我來說有點奇怪) – Hamish