From 0f83ea98e5637a655f38d9e9a0a87a7c8998c749 Mon Sep 17 00:00:00 2001 From: tagawa shouta Date: Tue, 12 Oct 2021 08:33:59 +0900 Subject: [PATCH] =?UTF-8?q?Model=E3=81=A8Controller=E3=82=92=E5=88=86?= =?UTF-8?q?=E9=9B=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/controller/PostController.js | 98 ++++++++++-------------- backend/app/model/Post.js | 87 +++++++++++++++++++++ 2 files changed, 127 insertions(+), 58 deletions(-) create mode 100644 backend/app/model/Post.js diff --git a/backend/app/controller/PostController.js b/backend/app/controller/PostController.js index 7339c2d..5ec00de 100644 --- a/backend/app/controller/PostController.js +++ b/backend/app/controller/PostController.js @@ -1,77 +1,59 @@ const root = require('app-root-path'); const db = require(`${root}/app/utils/database/db`); +const Post = require(`${root}/app/model/Post`); -module.exports = { - index: (req, res) => { - const sql = 'select * from posts;'; - - db.query(sql, (err, result, fields) => { - - if (err) throw err; - +class PostController { + static index = async (req, res) => { + try { + const result = await Post.all(); res.json(result); - }); - }, + } catch (e) { + console.error(e); + } + } - create: (req, res) => { + static create = async (req, res) => { const { content } = req.body; - const sql = ` - insert into posts (content) values ('${content}'); - `; - - db.query(sql, (err, result, fields) => { - - if (err) throw err; - + try { + const result = await Post.create(content); res.json(result); - }); - }, - - read: (req, res) => { - const sql = ` - select * from posts - where id = ${req.params.id}; - `; - - db.query(sql, (err, result, fields) => { - - if (err) throw err; + } catch (e) { + console.error(e); + } + } - res.json(result.length > 0 ? result[0] : {}); - }); - }, + static read = async (req, res) => { + try { + const result = await Post.find(req.params.id); + res.json(result); + } catch (e) { + console.error(e); + } + } - update: (req, res) => { + static update = async (req, res) => { const { id } = req.query; const { content } = req.body; - const sql = ` - update posts set content = '${content}' - where id = ${id}; - `; - - db.query(sql, (err, result, fields) => { - - if (err) throw err; - + try { + const result = await Post.update(id, content); res.json(result); - }); - }, + } catch (e) { + console.error(e); + } + } - delete: (req, res) => { + static delete = async (req, res) => { const { id } = req.query; - const sql = ` - update posts set del_flg = 1 - where id = ${id}; - `; - - db.query(sql, (err, result, fields) => { - - if (err) throw err; - + try { + const result = await Post.delete(id); res.json(result); - }); + } catch (e) { + console.error(e); + } } -} \ No newline at end of file +} + +module.exports = PostController; \ No newline at end of file diff --git a/backend/app/model/Post.js b/backend/app/model/Post.js new file mode 100644 index 0000000..637ecac --- /dev/null +++ b/backend/app/model/Post.js @@ -0,0 +1,87 @@ +const root = require('app-root-path'); +const db = require(`${root}/app/utils/database/db`); + +class Post { + static all = () => { + return new Promise((resolve, reject) => { + const sql = 'select * from posts;'; + + db.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }) + }) + } + + static find = (id) => { + return new Promise((resolve, reject) => { + const sql = ` + select * from posts + where id = ${id}; + `; + + db.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result.length > 0 ? result[0] : {}) + } + }); + }) + } + + static create = (content) => { + return new Promise((resolve, reject) => { + const sql = ` + insert into posts (content) values ('${content}'); + `; + + db.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }) + } + + static update = (id, content) => { + return new Promise((resolve, reject) => { + const sql = ` + update posts set content = '${content}' + where id = ${id}; + `; + + db.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }) + } + + static delete = (id) => { + return new Promise((resolve, reject) => { + const sql = ` + update posts set del_flg = 1 + where id = ${id}; + `; + + db.query(sql, (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }) + } +} + +module.exports = Post; \ No newline at end of file