据我了解:
我的课程位于根目录下的文件夹中,但可以将其移至public / javascript文件夹中。我的问题是将应用程序层代码限制在应该访问数据库的类中。 例如,仅User类具有更新数据库中用户名的方法。因此,在我的控制器(/路由)中,我不需要任何sql查询(顺便使用sequelize)。
我试图在控制器中做一个承诺,在该控制器中,我调用类的方法来执行查询并返回结果。
var user = new User();
var users = new Promise(function(resolve, reject) {
user.select();
});
Promise.all([users]).then(function(values){
console.log(values);
}
console.log(users);
)
我在课堂上做
models.user.findAll({
attributes: ['user_login','user_points','user_id']
}).then(
users => {
resolve(users);
}
)
在这里,未定义解决方法。但是,如果我在像这样调用类方法之后放下决心:
var users = new Promise(function(resolve, reject) {
user.select();
resolve(result);
});
结果未定义,它将在不等待查询完成的情况下解决。
由于我没有进行实验,也没有找到关于此主题的任何详细或近期的话题,所以我不知道如何进行。 我的第一个问题是:问题是否可能来自文件组织(或更普遍地说,这是我的通常/良好做法)。 我的第二个问题是如何使用类和node.js处理此类结构,因此我的示例应该可以工作。
感谢您的帮助。 我将补充一点,因为我没有找到关于该主题的最新主题,所以我非常有兴趣制作逐步指南,以使用app / routes / classes和ES6 js在node.js中构建完整的对象项目。目的是更好地理解它并将其提供给我的主管,以便他可以更正它并将其用于将来的新人并发布。
由于@estus,我现在不明白您可以将Promise存储在变量中。
它允许我在此变量上使用.then。
var result = a.select();
result.then(function(result) {
console.log('my result : ', result);
});
在该类中,仅当您不想解决Sequelize承诺时才返回结果:
users => {
return users;
}