seungmi

조건에 따른 음식 랜덤추천 기능 추가

추천 페이지에서 사용자가 원하는 조건을 입력했을때,
조건에 일치하는 음식리스트를 선별한 temp.json파일을 생성,
temp.json파일에서 음식을 랜덤으로 선정하여 추천하는 기능 추가
Showing 1 changed file with 33 additions and 12 deletions
...@@ -53,27 +53,48 @@ app.post('/food/recommendation', function(req, res) { ...@@ -53,27 +53,48 @@ app.post('/food/recommendation', function(req, res) {
53 var price = req.body.price; 53 var price = req.body.price;
54 var shape = req.body.shape; 54 var shape = req.body.shape;
55 var kinds = req.body.kinds; 55 var kinds = req.body.kinds;
56 - 56 + var list = {
57 - var rand = Math.floor(Math.random() * 3); //(Math.random() * (max - min)) + min 57 + food: []
58 - var i = 0; 58 + };
59 for (var foods in users) { 59 for (var foods in users) {
60 - if (rand == i) { 60 + if ((!price || users[foods]['price'] == price) && (!shape || users[foods]['shape'] == shape) && (!kinds || users[foods]['kinds'] == kinds)) {
61 - var food_value=foods; 61 + list.food.push(foods);
62 - // $('<li>').text(foods).appendTo('#users');
63 } 62 }
64 - i++;
65 } 63 }
64 + fs.writeFile('data/temp.json', JSON.stringify(list), "utf8", function(err) {
65 + if (err) {
66 + console.log(err);
67 + res.status(500).send('Internal Server Error');
68 + }
69 + });
66 70
67 - res.render('print.ejs', { 71 + fs.readFile('data/temp.json', 'utf8', function(err, data) {
68 - title: 'Recommendation', 72 + if (err) {
69 - description: 'We recommend this...', 73 + console.log((err));
70 - // name: users, 74 + res.status(500).send('Internal Server Error');
71 - randvalue: food_value 75 + } else {
76 + var food = JSON.parse(data)['food'];
77 + var length=food.length;
78 + var rand = Math.floor(Math.random() * length); //(Math.random() * (max - min)) + min
79 + for (var i = 0; i < length; i++) {
80 + if (rand == i) {
81 + var food_value = food[i];
82 + break;
83 + // $('<li>').text(foods).appendTo('#users');
84 + }
85 + }
86 + res.render('print.ejs', {
87 + title: 'Recommendation',
88 + description: 'We recommend this...',
89 + randvalue: food_value
90 + });
91 + }
72 }); 92 });
73 } 93 }
74 }); 94 });
75 }) 95 })
76 96
97 +
77 app.listen(3000, function() { 98 app.listen(3000, function() {
78 console.log('Connected, 3000'); 99 console.log('Connected, 3000');
79 }) 100 })
......