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) {
var price = req.body.price;
var shape = req.body.shape;
var kinds = req.body.kinds;
var rand = Math.floor(Math.random() * 3); //(Math.random() * (max - min)) + min
var i = 0;
var list = {
food: []
};
for (var foods in users) {
if (rand == i) {
var food_value=foods;
// $('<li>').text(foods).appendTo('#users');
if ((!price || users[foods]['price'] == price) && (!shape || users[foods]['shape'] == shape) && (!kinds || users[foods]['kinds'] == kinds)) {
list.food.push(foods);
}
i++;
}
fs.writeFile('data/temp.json', JSON.stringify(list), "utf8", function(err) {
if (err) {
console.log(err);
res.status(500).send('Internal Server Error');
}
});
res.render('print.ejs', {
title: 'Recommendation',
description: 'We recommend this...',
// name: users,
randvalue: food_value
fs.readFile('data/temp.json', 'utf8', function(err, data) {
if (err) {
console.log((err));
res.status(500).send('Internal Server Error');
} else {
var food = JSON.parse(data)['food'];
var length=food.length;
var rand = Math.floor(Math.random() * length); //(Math.random() * (max - min)) + min
for (var i = 0; i < length; i++) {
if (rand == i) {
var food_value = food[i];
break;
// $('<li>').text(foods).appendTo('#users');
}
}
res.render('print.ejs', {
title: 'Recommendation',
description: 'We recommend this...',
randvalue: food_value
});
}
});
}
});
})
app.listen(3000, function() {
console.log('Connected, 3000');
})
......