Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- mel.New({
- route: '/forum/category/get/all',
- run: (args, c) => {
- var category = [];
- var nodes = [];
- var ret = [];
- katjs.Query("SELECT * FROM forum_categories")
- .then( category_ => {
- category = category_; // no need to do this, just use category_ but that is the least of the issues lol
- for (var value in category){ // async so having a query inside of this will not work
- var dev3 = [];
- katjs.Query(`SELECT * FROM forum_nodes WHERE category = :category`, {category: value['id']} ) // this query finishes after you output so pointless
- .then( dev3_ => {
- dev3 = dev3_; // same again ^ you can just use dev3_
- for (var dnode in dev3) {
- var latest, discussions, discussions2 = [];
- var talk = 0;
- katjs.Query(`SELECT * FROM forum_discussions WHERE nodeid = :nodeid ORDER BY id DESC Limit 1`, {nodeid:dnode['id']}) //
- .then ( latest_ => {
- latest = latest_; // what is the point in setting latest when all the other code has already ran after this is completed
- });
- katjs.QueryValue(`SELECT COUNT(*) FROM forum_discussions WHERE nodeid = :category`, {category:dnode['id']})
- .then (dis_ =>{
- discussions = dis_; // same again
- });
- katjs.Query(`SELECT * FROM forum_discussions WHERE nodeid = :category`, {category:dnode['id']})
- .then( dis2_ => {
- discussions2 = dis2_; // and again
- });
- for (var dis in discussion2){ // discussions2 is empty, 'discussions2 = dis2_;' runs after this is ran
- katjs.QueryValue("SELECT COUNT(*) FROM forum_messages WHERE discussionid = :category", {category:dis['id']} ) // will never get here
- .then (talk_ => {
- talk += talk_;
- console.log("talk: "+talk);
- })
- }
- for (var latest2 in latest){
- katjs.QueryValue("SELECT username FROM users WHERE id = :id", {id:latest2['userid']} ) //
- .then(user_ => {
- latest2['username'] = user_;
- });
- }
- // the last 5+ queries will run at the same time and .then will be called AFTER everything below has already been ran so you can remove them and the result would be the same
- dnode['latest'] = latest; // latest is empty when this is ran
- dnode['discussions'] = discussions; // discussions is empty when this is ran
- dnode['messages'] = talk; // talk is also empty when this is ran
- }
- value['nodes'] = dev3;
- category[value['id']-1] = value;
- })
- }
- c(mel.Success({category:category})) // again, runs after the second query is ran so what is the point
- // also, ever heard of JOIN?? this is way more queries it could probably be done in 1.
- });
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement