TODO 프로젝트 – 5. Backend API

백엔드에서 사용할 API를 만들어 보겠습니다.
백엔드 루트는 테스트 페이지, /api/기능/파라미터 형태는 API호출 주소로 사용하겠습니다.

1.backend/app.js

var express = require('express');
var mysql = require('mysql');
var bodyParser = require('body-parser');
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);
var jsonParser = bodyParser.json();
var cookieParser = require('cookie-parser');
var path = require('path');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');


app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

var connection = mysql.createConnection({
    host : '127.0.0.1',
    user : 'admin',
    password : '****',
    database: 'todos'
});
connection.connect();

var options = {
    host: '127.0.0.1',
    port: '3306',
    user: 'admin',
    password: '****',
    database: 'todos'
}
var sessionStore = new MySQLStore(options);
app.use(session({
    secret: '!@#$%^&*',  // 암호화
    resave: false,
    saveUninitialized: true,
    store: sessionStore
}));

app.get('/api/login/:id',function (req,res,next) {
    var id = req.params.id;
    connection.query(
        'SELECT COUNT(*) from `todos_member` WHERE `member_id`= ?',
        id,
        function (error, results, fields) {
            if (error) console.log(error);
            res.send(results);
        }
    );
});

app.get('/todo',function (req,res,next) {
    connection.query(
        'SELECT * from todos',
        function (error, results, fields) {
            if (error) console.log(error);
            res.send(results);
        }
    );
});

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

기본적인 API 형태는 위와 같습니다.
추후 변경할 예정이지만 /api/login, /api/todos 형태로 호출되어 값을 리턴하게 됩니다.