我剛開始用Node.js的一個大項目,我已經在一些回調噩夢問題絆倒的對象和變量的變化。我之前做過一些node.js開發,但只有基於教程的小東西。Node.js的如何處理回調
我有一個用戶模型和所有者模型,誰是該用戶的所有者......基本上,我在node.js中構建的部分將是REST服務,因此我需要發送包含用戶的json和它是所有者的名字。我的問題是試圖獲得所有者的名字,就像我會做的紅寶石或PHP並將其設置爲屬性..但它不起作用。
人們如何處理這種在您需要更改回調函數對象Node.js的邏輯?另外我不希望它影響性能。
我使用mysql作爲數據庫,因爲這是一個需求。因此,代碼是這樣的:
//find all
req.models.users.find({
'id' : req.query.id
}, function(err, users) {
if (err) console.log(err); //do something better here
else {
var json = [];
users.forEach(function(user) {
user.getOwner(function(err, owner) {
user.accountOwner = owner.name;
json.push(user;
});
});
res.type('application/json');
res.send(json);
}
});
我想給這樣的事情: [{ '身份證':user.id, 「用戶名「:user.username, '電子郵件':user.email , 「所有者」:user.owner.name」 }, {...}]
是的,我知道我做的事情錯了,我真的不知道如何Node.js的作品,,,我已經說過這是節點紅寶石背景的我的第一個大項目。我一直在尋找一個解決方案和指導這個相當簡單的工作流程。 – user2528290
我認爲這個問題是你認爲的,因爲在ruby/rails中很容易,在節點中很容易。沒有關聯。有些事情在node/ruby中同樣容易,ruby中的一些簡單事情在節點中很難(像這樣),並且ruby中的一些困難事情在節點中很容易(例如並行執行第二組DB查詢)。 –