2017년 3월 7일 화요일

코딩 삽질노트 - 코드 복붙의 장단점

일단 오늘자 (2017.03.01) 삽질 코드는 다음과같다

[app.js]
var express = require('express');
var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : 'lucys2Ekfrlo',
  database : 'o2'
});
connection.connect();
var app = express();
var bodyParser = require('body-parser');
var fs =require('fs');
app.use(bodyParser.urlencoded({ extended: false }));
app.locals.pretty = true;
app.set('views', './views_mysql');
app.set('view engine', 'jade');
app.listen(3000, function(){
  console.log('Connected 3000!! HAHA');
});
app.post('/topic/edit', function(req, res){
  var title = req.body.title;
  var description = req.body.description;
  var author = req.body.author;
  var sql='INSERT INTO topic (title, description, author) VALUES(?, ?, ?)';
  connection.query(sql, [title, description, author], function(err, results, fields){
    if(err){
      console.log(err);
      res.status(500).send('post err');
    }else{
      res.redirect('/topic/'+ results.insertID);
    }
  });
});

app.get(['/topic', '/topic/:id'], function(req, res){
    var sql = 'SELECT id,title FROM topic';
    connection.query(sql, function(err, i_topics1, fields){
        var id=req.params.id;
        if(id){
          if(id=='edit'){
            var sql = 'SELECT id,title FROM topic';
            connection.query(sql, function(err, topics, fields){
              if(err){
                console.log(err);
                res.status(500).send('get err1');
              }
            res.render('editer', {topics:topics});
            });
          }
          var sql= 'SELECT * FROM topic WHERE id=?'
          connection.query(sql, [id], function(err, topic, fields){
            if(err){
              console.log(err);

              res.status(500).send('get err2');
            }else{
              res.render('view', {topics:i_topics1, i_topic:topic[0]});
            }
          });
        }else{
          res.render('view', {topics:i_topics1});
        }

    });
});
[Editer.jade]

doctype html
html
  head
    meta(charset='utf-8')
  body
    h1
     a(href='/topic') Server Side Javascript
    ul
      each topic in topics
        li
          a(href='/topic/'+topic.id)=topic.title
    form(action='/topic/edit' method = 'post')
      p
        input(type ='text' name = 'title' placeholder='title')
      p
        input(name='description' placeholder='description')
      p
        input(type ='text' name = 'author' placeholder='author')
      p
        input(type='submit' value("등록하기"))
================================================================

노랑색 형광팬 부분에서 타이틀이랑 작가 부분이랑 형식이 똑같아서 타이틀 라인을 복사해서 작가 라인에 붙여넣기를했는대... 이거때문에 개삽질을 하게했다
일단 placeholder 에만 집중해서 name 값을 안바꿔주어서 삽질을 하게되었다
중복된코드는 복사붙여넣기를 안쓰는방향으로 하는게좋지만! HTML같은 코드에서는 필요할때가 종종 있다. 이떄 위의 name같이 header값을 잘못주면 이리저리 엄한 js파일에서 오타가 나온게아닌가 뒤적거리다가 시간낭비 오지게 할수있다.
여튼 HTML같은 코드가 아니라면 복붙은 되도록 자게하도록하고(오타가 안난다는 가정하에..)
복붙을한다면 위에 .name, placeholder 같은 값들은 하나하나 안바꿔도되는지 다시한번 생각하자 복붙하고.


댓글 없음:

댓글 쓰기