【发布时间】:2014-02-27 22:48:29
【问题描述】:
我正在开发一个带有角度前端和在 nodejs 中开发的 restfull 后端的项目。 该项目使用现有的 MySQL 数据库。我使用 sequelizejs orm 连接 node 和 mysql。
在数据库中有 2 个实体:用户和项目。一个项目有很多用户(称为工人)
Project.findAll().success(function(projects) {
var array=[];
projects.forEach(function(project) {
project.getWorkers().success(function(users) {
project.workers=users;
console.log('a');
});
console.log('b');
array.push(project);
});
console.log('c');
res.json(array);
});
Sequelize 工作正常。它返回所有项目,getWorkers 返回该项目的正确用户。
有什么问题? 问题是 asincronously 调用,在发送响应后调用 getWorkers。这是不正确的。在发送结果之前,我需要在每个项目中添加工作人员。 console.log 说:b b b c a a a a a a a (“c”是在“a”getWorkers之前调用的json响应。正确的方法是:b a a b a a a a b a c
【问题讨论】:
标签: node.js sequelize.js