-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
69 lines (56 loc) · 1.71 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
'use strict';
var co = require('co');
var Question = require('./models/question.js');
var Answer = require('./models/answer.js');
/*
co(function *(){
// resolve multiple promises in parallel
var a = Promise.resolve(1);
var b = Promise.resolve(2);
var c = Promise.resolve(3);
var res = yield [a, b, c];
console.log(res);
// => [1, 2, 3]
}).catch(onerror);
function onerror(err) {
console.error(err.stack);
}
*/
var resultArr = [];
co(function *() {
var questions = yield Question.findAll({
attributes: ['id', 'title', 'desc', 'userId', 'createdAt', 'updatedAt'],
order: [['createdAt', 'desc']]
});
for(var question of questions){
var user = yield question.getUser();
var temp = {};
temp.id = question.id;
temp.title = question.title;
temp.desc = question.desc;
temp.userId = question.userId;
temp.createdAt = question.createdAt;
temp.updatedAt = question.updatedAt;
temp.username = user.username;
resultArr.push(temp);
}
var answers = yield Answer.findAll({
attributes: ['id', 'content', 'createdAt', 'updatedAt', 'userId', 'questionId'],
order: [['createdAt', 'desc']]
});
for(var answer of answers){
var user = yield answer.getUser();
var temp = {};
temp.id = answer.id;
temp.content = answer.content;
temp.userId = answer.userId;
temp.questionId = answer.questionId;
temp.createdAt = answer.createdAt;
temp.updatedAt = answer.updatedAt;
temp.username = user.username;
resultArr.push(temp);
}
resultArr.sort(function(a,b){
return b.createdAt-a.createdAt;
});
});