main.js 4.75 KB
var express = require('express')
var app = express()
var fs = require('fs');
var bodyParser = require('body-parser');
var helmet = require('helmet')
app.use(helmet());
var session = require('express-session');
var FileStore= require('session-file-store')(session);

var template = require('./lib/template.js');
var container = require('./lib/container.js');

var axios = require('axios');
var request = require("request");

var low =require('lowdb')
var FileSync = require('lowdb/adapters/FileSync');
var adapter = new FileSync('db.json');
var db=low(adapter);
db.defaults({users:[]}).write();


app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(session({
  secret: 'asadlfkj!@#!@#dfgasdg',
  resave: false,
  saveUninitialized: true,
  store: new FileStore()
}))

var app_id = "a59b8963";


var api_key = "1c4c66e13fa8bf8d4d5c5a6c8ba1cf5b";

var foodkind;

var ingr;

var sID;

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});






app.use(express.static('data/images'));
app.get('/', function(request, response) {

    fs.readFile('./contents/main.html', function(error, body){
      var title = 'Health Care';
      var ch='15ch'
      var html = template.HTML(title,ch,'',body,'','');
      response.send(html);
    });
  });

  app.post('/login_process', function(request, response) {
   var post = request.body;
   var ID=post.ID;
   var password=post.pwd;
   var user = db.get('users').find({ID:ID,password:password}).value();
       if(user){
        request.session.is_logined = true;
        request.session.ID=ID;
        sID=ID;
        request.session.save(function(){
          response.redirect('/InputPage')
        });
       }
  });

  app.get('/signup', function(request, response) {
    fs.readFile('./contents/signup.html', function(error, body){
      var title = 'Sign Up Page';
      var ch='5ch'
      var html = template.HTML(title,ch,'<link rel="stylesheet" type="text/css" href="./a.css" />',body,'','');
      response.send(html);
    });
  });


  app.post('/signup_process', function(request, response) {
    var post = request.body;
    var ID=post.ID;
    var pwd=post.pwd;
    var age=post.age;
    var gender=post.gender;
    var height=post.height;
    var weight=post.weight;
    db.get('users').push({
      ID:ID,
      password:pwd,
      age:age,
      gender:gender,
      height:height,
      weight:weight
    }).write();
    request.session.is_logined = true;
    request.session.ID = ID;
    request.session.save(function(){
      response.redirect('/InputPage')
    });

  });


  app.get('/InputPage', function(request, response){
    fs.readFile('./contents/Input.html', function(error, body){
      var title = 'Input Page';
      var ch='5ch'
      var html = template.HTML(title,ch,``,body,`#logout{
        position:absolute;
        right: 20ch;
    }`,'');
      response.send(html);
    });
  });

  app.post('/foods', function(request, response){
    foodkind=request.body;
    ingr=foodkind.name;
      response.redirect('/ingr');
  });

  app.get('/ingr',function(req, res){
    request(
      { method: 'GET'
      , uri: 'https://api.edamam.com/api/nutrition-data?app_id=' + app_id + '&app_key=' + api_key + '&ingr=' + ingr
      , gzip: true
      }
    , function (error, response, result) {
    fs.readFile('./contents/Result.html', function(error, body){
        var title = 'Result Page';
        var ch='5ch'
        var jresult=JSON.parse(result);
        var cal = jresult.calories;
        var user = db.get('users').find({ID:sID}).value();
        var bmi = user.weight/(user.height*user.height/100/100);
        var ccc = container.L(`<h2>칼로리 : ${cal}kcal`,'',`<h2>bmi: ${bmi}</h2>`)
        var html = template.HTML(title,ch,``,body,`#logout{
            position:absolute;
            right: 20ch;
        }

        #section{
            position: absolute;
            margin-left:5%;
            float:left;
            width: 40%;
            height: 90%;
        }

       #container1{
           float: left;
           border: 1px solid white;
           width: 100%;
           height: 45%;
       }
       #container2{
           float: left;
           border: 1px solid white;
           width: 100%;
           height: 45%;
       }
       #container3{
           float: right;
           border: 1px solid white;
           margin-right:5%;
           width: 40%;
           height: 90%;
       }`,ccc);
         res.send(html);


      });
     });
});




  app.get('/logout', function(request, response) {
    request.session.destroy(function(err){
      response.redirect('/');
    })
  });

  app.listen(3000, function() {
    console.log('Example app listening on port 3000!')
  });