【发布时间】:2015-07-31 20:47:52
【问题描述】:
我需要在我的代码中使用 bluebird,但我不知道如何使用它。我的代码包含嵌套循环。当用户登录时,我的代码将运行。它将开始查找用户下的任何文件,如果有文件,它将循环获取文件的名称,因为名称存储在字典中。一旦获得名称,它将将该名称存储在一个数组中。一旦存储了所有名称,它将在 res.render() 中传递。
这是我的代码:
router.post('/login', function(req, res){
var username = req.body.username;
var password = req.body.password;
Parse.User.logIn(username, password, {
success: function(user){
var Files = Parse.Object.extend("File");
var object = [];
var query = new Parse.Query(Files);
query.equalTo("user", Parse.User.current());
var temp;
query.find({
success:function(results){
for(var i=0; i< results.length; i++){
var file = results[i].toJSON();
for(var k in file){
if (k ==="javaFile"){
for(var t in file[k]){
if (t === "name"){
temp = file[k][t];
var getname = temp.split("-").pop();
object[i] = getname;
}
}
}
}
}
}
});
console.log(object);
res.render('filename', {title: 'File Name', FIles: object});
console.log(object);
},
error: function(user, error) {
console.log("Invalid username/password");
res.render('logins');
}
})
});
编辑:代码不起作用,因为在第一个和第二个 console.log(object) 上,我得到一个空数组。我想在该数组中获取一项,因为我保存了一个文件
【问题讨论】:
-
为什么需要使用bluebird?如果您将
res.render移动到最里面的success回调的末尾,您的代码应该已经可以工作了 -
代码不起作用,因为在第一个和第二个 console.log(object) 上,我得到一个空数组。我想在该数组中获取一项,因为我保存了一个文件。
标签: node.js parse-platform promise bluebird