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 형태로 호출되어 값을 리턴하게 됩니다.