김동진

second commit/bmi 확인 기능 추가

......@@ -20,7 +20,7 @@ var app = http.createServer(function(request,response){
}
else if(pathname === '/countKcal'){
var title = '칼로리 계산';
var description = '성별, 키, 몸무게, 활동량을 입력하시면 일일 권장 섭취량(kcal)를 알려드립니다!';
var description = '성별, 나이, 키, 몸무게, 활동량을 입력하시면 일일 권장 섭취량(kcal)를 알려드립니다!';
var html = template.html(title,`
<h2>${title}</h2>
<p>${description}</p>
......@@ -29,16 +29,18 @@ var app = http.createServer(function(request,response){
<select name="gender">
<option value="man">남자</option>
<option value="woman">여자</option></select
><br />
><br />
나이(세) : <br />
<input type="text" name="age" /><br />
키(cm) : <br />
<input type="text" name="height" /><br />
몸무게(kg) : <br /><input type="text" name="weight" /><br />
활동량 :<br />
<select name="activity">
<option value="low">가벼운 활동(주로 앉아서 생활)</option>
<option value="mid">중등 활동(주로 서서 일하거나 생활)</option>
<option value="high">많은 활동(건설, 농업 등 노동이 많은 일)</option>
<option value="veryHigh">매우 많은 활동(운동선수)</option></select
<option value="low">앉아 있거나 가벼운 활동(운동을 거의 또는 전혀하지 않음)</option>
<option value="mid">활동적 또는 보통 활동(건설노동자 또는 매일 1시간씩 달림)</option>
<option value="high">많은 활동(농업노동자 또는 매일 2시간동안 수영을 함)</option>
</select
><br />
<input type="submit" value="계산하기" />
</form>` );
......@@ -55,24 +57,49 @@ var app = http.createServer(function(request,response){
request.on('end', function(){
var post = qs.parse(body);
var title = '칼로리 계산';
var description = '성별, 키, 몸무게, 활동량을 입력하시면 일일 권장 섭취량(kcal)를 알려드립니다!';
var description = '성별, 키, 몸무게, 활동량을 입력하시면 표준체중, 현재 체중을 유지하는데 필요한 열량, 다이어트 열량을 알려드립니다!';
var gender = post.gender;
var age = post.age;
var height = post.height;
var weight = post.weight;
var BMR; //기초대사량(bmr) Harris-BenedictEquation(B.E.E) 방법
var BMI = (weight/(height*height)*10000).toFixed(1); //비만도
var BMI_msg = '';
if(BMI >= 30){
BMI_msg += '고도비만';
}
else if(BMI >=25 && BMI <30){
BMI_msg += '비만';
}
else if(BMI >=23 && BMI <25){
BMI_msg += '과체중';
}
else if(BMI >=18.5 && BMI <23){
BMI_msg += '정상';
}
else if(BMI >= 0 && BMI < 18.5){
BMI_msg += '저체중';
}
else {
BMI_msg += "Error";
}
var gender_default = '';
if(gender == "man"){
gender_default =
`<option value="man" selected>남자</option>
<option value="woman">여자</option>`;
BMR = (66.5 + 13.75*weight + 5.003*height - 6.755*age).toFixed(1);
}
else {
gender_default =
`<option value="man" >남자</option>
<option value="woman" selected>여자</option>`;
BMR = (655. + 9.563*weight + 1.85*height - 4.676*age).toFixed(1);
}
var std_weight = (height*height/10000*((gender =="man") ? 22 : 21)).toFixed(1); //남자면 22, 여자면 21을 곱함.
var activity = post.activity;
var activity_idx;
var TDEE; //Total Daily Energy Expenditure 현재 체중을 유지하기 위한 열량
var activity_default = '';
var weight_gap = (weight - std_weight).toFixed(1);
var weightMsg = "";
......@@ -87,44 +114,36 @@ var app = http.createServer(function(request,response){
}
switch(activity){
case "low":
activity_idx = 25;
activity_idx = 1.53;
TDEE = (BMR*activity_idx).toFixed(1);
activity_default = `
<option value="low" selected>가벼운 활동(주로 앉아서 생활)</option>
<option value="mid">중등 활동(주로 서서 일하거나 생활)</option>
<option value="high">많은 활동(건설, 농업 등 노동이 많은 일)</option>
<option value="veryHigh">매우 많은 활동(운동선수)</option></select>
<option value="low" selected>앉아 있거나 가벼운 활동(운동을 거의 또는 전혀하지 않음)</option>
<option value="mid">활동적 또는 보통 활동(건설노동자 또는 매일 1시간씩 달림)</option>
<option value="high">활발히 활동(농업노동자 또는 매일 2시간동안 수영을 함)</option>
</select>
`
break;
case "mid":
activity_idx = 30;
activity_default = `
<option value="low" >가벼운 활동(주로 앉아서 생활)</option>
<option value="mid" selected>중등 활동(주로 서서 일하거나 생활)</option>
<option value="high">많은 활동(건설, 농업 등 노동이 많은 일)</option>
<option value="veryHigh">매우 많은 활동(운동선수)</option></select>
`
break;
case "high":
activity_idx = 35;
activity_idx = 1.76;
TDEE = (BMR*activity_idx).toFixed(1);
activity_default = `
<option value="low" >가벼운 활동(주로 앉아서 생활)</option>
<option value="mid" >중등 활동(주로 서서 일하거나 생활)</option>
<option value="high" selected>많은 활동(건설, 농업 등 노동이 많은 일)</option>
<option value="veryHigh">매우 많은 활동(운동선수)</option></select>
<option value="low" >앉아 있거나 가벼운 활동(운동을 거의 또는 전혀하지 않음)</option>
<option value="mid" selected>활동적 또는 보통 활동(건설노동자 또는 매일 1시간씩 달림)</option>
<option value="high">많은 활동(농업노동자 또는 매일 2시간동안 수영을 함)</option>
</select>
`
break;
default:
activity_idx = 40;
activity_idx = 2.25;
TDEE = (BMR*activity_idx).toFixed(1);
activity_default = `
<option value="low" >가벼운 활동(주로 앉아서 생활)</option>
<option value="mid" >중등 활동(주로 서서 일하거나 생활)</option>
<option value="high" >많은 활동(건설, 농업 등 노동이 많은 일)</option>
<option value="veryHigh" selected>매우 많은 활동(운동선수)</option></select>
<option value="low" >앉아 있거나 가벼운 활동(운동을 거의 또는 전혀하지 않음)</option>
<option value="mid" >활동적 또는 보통 활동(건설노동자 또는 매일 1시간씩 달림)</option>
<option value="high" selected>많은 활동(농업노동자 또는 매일 2시간동안 수영을 함)</option>
</select>
`
}
var recommended_kcal_day = (std_weight*activity_idx).toFixed();
var html = template.html(title,`
<h2>${title}</h2>
<p>${description}</p>
......@@ -144,7 +163,9 @@ var app = http.createServer(function(request,response){
<br>
표준체중 : ${std_weight}kg <br>
${weightMsg}<br>
하루 권장 섭취량 : ${recommended_kcal_day}kcal
BMI 지수 : ${BMI} / 당신은 ${BMI_msg} 입니다. <br>
기초 대사량 : ${BMR}kcal <br>
현재 체중 유지를 위한 열량 : ${TDEE}kcal <br>
</form>
` );
......