seungmi

checkbox기능 추가

Showing 1 changed file with 52 additions and 10 deletions
...@@ -57,21 +57,63 @@ app.post('/food/recommendation', function(req, res) { ...@@ -57,21 +57,63 @@ app.post('/food/recommendation', function(req, res) {
57 var price = req.body.price; 57 var price = req.body.price;
58 var shape = req.body.shape; 58 var shape = req.body.shape;
59 var kinds = req.body.kinds; 59 var kinds = req.body.kinds;
60 - var list = {
61 - food: []
62 - };
63 60
64 - function add(users, price, shape, kinds, list, callback) { 61 + if (!Array.isArray(shape) && shape) {
62 + var shape = [];
63 + shape.push(req.body.shape);
64 + }
65 + if (!Array.isArray(kinds) && kinds) {
66 + var kinds = [];
67 + kinds.push(req.body.kinds);
68 + }
69 + // var len_shape=shape.length;
70 + // var len_kinds=kinds.length;
71 +
72 + var set1 = new Set();
73 + var set2 = new Set();
74 + var set3 = new Set();
75 +
76 + function add(users, price, shape, kinds, callback) {
65 for (var foods in users) { 77 for (var foods in users) {
66 - if ((!price || users[foods]['price'] == price) && (!shape || users[foods]['shape'] == shape) && (!kinds || users[foods]['kinds'] == kinds)) { 78 + if (shape) {
67 - list.food.push(foods); 79 + for (var i = 0; i < shape.length; i++) {
80 + if (users[foods]['shape'] == shape[i]) {
81 + set1.add(foods);
82 + }
83 + }
84 + } else {
85 + set1.add(foods);
86 + }
87 + if (kinds) {
88 + for (var j = 0; j < kinds.length; j++) {
89 + if (users[foods]['kinds'] == kinds[j]) {
90 + set2.add(foods);
91 + }
92 + }
93 + } else {
94 + set2.add(foods);
95 + }
96 + if (!price || (price&&users[foods]['price'] <= Number(price)+5000 && users[foods]['price'] >= Number(price)-5000)) {
97 + set3.add(foods);
98 + console.log(users[foods]['price']);
68 } 99 }
69 - // $('<li>').text(foods).appendTo('#users');
70 } 100 }
71 - callback(list); 101 + console.log(shape);
102 + console.log(kinds);
103 + console.log(set1);
104 + console.log(set2);
105 + console.log(set3);
106 + // console.log('shapeleng:' + shape.length);
107 + // console.log('kinds leng:' + kinds.length);
108 + callback(set1, set2, set3);
72 } 109 }
73 110
74 - add(users, price, shape, kinds, list, function(list) { 111 + add(users, price, shape, kinds, function(set1, set2, set3) {
112 + let difference1 = new Set([...set1].filter(i => set2.has(i)));
113 + let difference2 = new Set([...difference1].filter(i => set3.has(i)));
114 + var list = {
115 + food: [...difference2]
116 + };
75 fs.writeFile('data/temp.json', JSON.stringify(list), "utf8", function(err) { 117 fs.writeFile('data/temp.json', JSON.stringify(list), "utf8", function(err) {
76 if (err) { 118 if (err) {
77 console.log(err); 119 console.log(err);
...@@ -97,7 +139,7 @@ app.post('/food/recommendation', function(req, res) { ...@@ -97,7 +139,7 @@ app.post('/food/recommendation', function(req, res) {
97 }); //readFile closed 139 }); //readFile closed
98 } 140 }
99 }); //writeFile closed 141 }); //writeFile closed
100 - });//add closed 142 + }); //add closed
101 143
102 } 144 }
103 }); //readFile closed 145 }); //readFile closed
......