Node.js - MySQL

저자 생성 기능 구현

수업소개

저자 생성 기능을 구현하는 방법을 알아보겠습니다.

 

 

 

강의

 

 

 

소스코드

변경사항

main.js


var http = require('http');
var url = require('url');
var topic = require('./lib/topic');
var author = require('./lib/author');

var app = http.createServer(function(request,response){
    var _url = request.url;
    var queryData = url.parse(_url, true).query;
    var pathname = url.parse(_url, true).pathname;
    if(pathname === '/'){
      if(queryData.id === undefined){
        topic.home(request, response);
      } else {
        topic.page(request, response);
      }
    } else if(pathname === '/create'){
      topic.create(request, response);
    } else if(pathname === '/create_process'){
      topic.create_process(request, response);
    } else if(pathname === '/update'){
      topic.update(request, response);
    } else if(pathname === '/update_process'){
      topic.update_process(request, response);
    } else if(pathname === '/delete_process'){
      topic.delete_process(request, response);
    } else if(pathname === '/author'){
      author.home(request, response);
    } else if(pathname === '/author/create_process'){
      author.create_process(request, response);
    } else {
      response.writeHead(404);
      response.end('Not found');
    }
});
app.listen(3000); 

 

lib/author.js

var db = require('./db');
var template = require('./template.js');
var qs = require('querystring');

exports.home = function(request, response){
    db.query(`SELECT * FROM topic`, function(error,topics){
        db.query(`SELECT * FROM author`, function(error2,authors){
            var title = 'author';
            var list = template.list(topics);
            var html = template.HTML(title, list,
            `
            ${template.authorTable(authors)}
            <style>
                table{
                    border-collapse: collapse;
                }
                td{
                    border:1px solid black;
                }
            </style>
            <form action="/author/create_process" method="post">
                <p>
                    <input type="text" name="name" placeholder="name">
                </p>
                <p>
                    <textarea name="profile" placeholder="description"></textarea>
                </p>
                <p>
                    <input type="submit">
                </p>
            </form>
            `,
            ``
            );
            response.writeHead(200);
            response.end(html);
        });
    });
}

exports.create_process = function(request, response){
    var body = '';
      request.on('data', function(data){
          body = body + data;
      });
      request.on('end', function(){
          var post = qs.parse(body);
          db.query(`
            INSERT INTO author (name, profile) 
              VALUES(?, ?)`,
            [post.name, post.profile], 
            function(error, result){
              if(error){
                throw error;
              }
              response.writeHead(302, {Location: `/author`});
              response.end();
            }
          )
      });
}

 

댓글

댓글 본문
  1. 감자
    22.12.21
  2. 당당
    2022.11.13
  3. enty
    감사합니다
  4. 대포123
    22.10.25 create 완료
  5. 케굴
    2021-12-30
  6. HyunseoLee
    20210811 좋습니다
  7. labis98
    20210803 good!!!
  8. hanel_
    21.3.28
  9. chimhyangmoo
    21.03.19
  10. jeisyoon
    2021.03.13 저자 생성 기능 - OK
  11. 김지호
    21 01 04
  12. 생활둘기
    2021 1 3
  13. 콜라
    20201022 완료
  14. 준바이
    감사합니다
  15. 강다리
    달립니다
  16. 굼벵이
    완료
  17. jo_onc
    수강완료!
  18. 연수아빠
    수강 완료!!
graphittie 자세히 보기