5 글 보임 - 1 에서 5 까지 (총 5 중에서)
-
글쓴이글
-
2022년 12월 31일 20:09 #60335
이해욱참가자server.js app.post('/add', function(req, res){ var id= parseInt(req.body.id); var title = req.body.title; var content = req.body.content; console.log(id,title,content); var sql = 'INSERT INTO post (id, title, content) VALUES(?, ?, ?)'; connection.query(sql, [[id], title, content], function(err, result){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { var sql = 'UPDATE count SET totalpost = totalpost +1'; connection.query(sql,function(err,num){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { res.render('index.ejs'); } }); 에러 NaN 1234 1234 -> (id,title,content); 순인데 id값에 NAN이 뜹니다 console.log(req.body.id); ->했을시 undefined 이 뜹니다. var id= parseInt(req.params.id); ->이렇게 해도 undefined 뜹니다 Error: Unknown column 'NaN' in 'field list' at Packet.asError (C:\Users\atolo\Desktop\server\node\node_modules\mysql2\lib\packets\packet.js:728:17) at Query.execute (C:\Users\atolo\Desktop\server\node\node_modules\mysql2\lib\commands\command.js:29:26) at Connection.handlePacket (C:\Users\atolo\Desktop\server\node\node_modules\mysql2\lib\c package.json 에 "body-parser": "^1.20.1", 설치도되어있습니다. app.use(bodyParser.urlencoded({extended: false})) ->true 로 바꾸도 false 로바꿔도 안되고 app.use(express.json()); ->이걸 추가 해도안됩니다. 또는 app.use(bodyParser.json()); 이렇게 해도안됩니다. 이상하게 var id= parseInt(req.body.id); var title = req.body.title; var content = req.body.content; console.log(id,title,content); -> body 했을경우 title과 content는 되는데 id만 안됩니다.
2022년 12월 31일 23:29 #60355
이해욱참가자app.get('/write',function(req, res){ var sql = 'SELECT id FROM post'; connection.query(sql,function(err,topics){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { res.render('write.ejs', {posts: topics[0]}); } }) })
app.post('/add', function(req, res){ console.log(req.body.id); var id= parseInt(req.body.id); var title = req.body.title; var content = req.body.content;
var numberid = 1; var sql = 'INSERT INTO post (id, title, content, numberid) VALUES(?, ?, ?, ?)'; connection.query(sql, [[id], title, content, numberid], function(err, result){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { var sql = 'UPDATE count SET totalpost = totalpost +1'; connection.query(sql,function(err,num){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { res.render('index.ejs',{posts : result[0]}); } }); } }) }) write.ejs
<form action="/add" method="POST"> <input type="text" value="<%= posts.id %>" name="id" style="display:none;">
<label>제목</label> <input type="text" class="form-control" name="title" style="width: 770px;"> <label>내용</label> <input type="text" class="form-control wow" name="content" style="width: 770px;"> <button type="submit" class="btn btn-primary">Primary</button> </form>
몇시간 동안 삽질해서 어느정도 됐는데 Error: Duplicate entry '92' for key 'post.PRIMARY' at Packet.asError (C:\Users\atolo\Desktop\server\node\node_modules\mysql2\lib\packets\packet.js:728:17) PRIMAY키가 중복되서 오류뜨는거같아서 여기서 id를 1 키울 방법이 뭐가있을까요? connection.query(sql, [[id+=1], title, content, numberid], function(err, result){ 여기서 하면 한번만 되고2번은 안되더라구요 혹은 id값을 id=id+1; 이렇게 해도안되구요 무슨 방법이 있을가요?
2022년 12월 31일 23:47 #60358
이해욱참가자app.post('/add', function(req, res){ var id= parseInt(req.body.id); var title = req.body.title; var content = req.body.content; var numberid = 1; var sql = 'INSERT INTO post (id, title, content, numberid) VALUES(?, ?, ?, ?)'; connection.query(sql, [[id], title, content, numberid], function(err, result){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { var sql = 'UPDATE post SET id = id +1'; connection.query(sql,function(err,num){ console.log(num); if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { var sql = 'UPDATE count SET totalpost = totalpost +1'; connection.query(sql,function(err,good){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { res.render('index.ejs',{posts : result[0]}); } }) } }) } }) }) 생각을해봐서 var sql = 'UPDATE post SET id = id +1'; connection.query(sql,function(err,num){ console.log(num); if(err) { console.log(err); res.status(500).send('Internal Server Error'); } ~!@~@ !~@@! 이렇게 했는데 도저히 안되네요 ㅠㅠㅠ 방법이없을까요
2023년 1월 1일 09:50 #60379
codingapple키 마스터req.body.id 가 안나오면 프론트엔드에서 안보내서그럴수 있습니다 <input type="text" value="<%= posts.id %>" value에 잘 뭐가 박혀있나 개발자도구에서 확인해봅시다
2023년 1월 1일 13:20 #60395
이해욱참가자write.ejs
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script> <!-- <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
<link href="/public/main.css" rel="stylesheet"> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="/public/se2/js/service/HuskyEZCreator.js" charset="utf-8"></script> </head> <body> <div class="_container"> <div class="header"> <%- include('nav.html')%> </div> <div class="left-menu"></div> <div class="center-menu"> <form action="/add" method="POST"> <input type="text" value="<%= posts.id %>" name="id" style="display:none;">
<label>제목</label> <input type="text" class="form-control" name="title" style="width: 770px;"> <label>내용</label> <input type="text" class="form-control" name="content" style="width: 770px;"> </div> <div class="right-menu"></div> <div class="footer"></div> </div> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous"> </script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.min.js" integrity="sha384-IDwe1+LCz02ROU9k972gdyvl+AESN10+x7tBKgc9I5HFtuNz0wWnPclzo6p9vxnk" crossorigin="anonymous"> </script> </body>
</html>
server.js
app.post('/add', function(req, res){ var id= parseInt(req.body.id); var title = req.body.title; var content = req.body.content; var numberid = 1; var sql = 'INSERT INTO post (id, title, content, numberid) VALUES(?, ?, ?, ?)'; connection.query(sql, [[id], title, content, numberid], function(err, result){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { var sql = 'UPDATE count SET totalpost = totalpost +1'; connection.query(sql,function(err,good){ if(err) { console.log(err); res.status(500).send('Internal Server Error'); } else { res.render('index.ejs',{posts : result[0]}); } }) } }) }) error
ReferenceError: C:\Users\atolo\Desktop\server\node\views\write.ejs:28 26| <div class="center-menu"> 27| <form action="/add" method="POST"> >> 28| <input type="text" value="<%= posts.id %>" name="id" style="display:none;"> 29| 30| <label>제목</label> 31| <input type="text" class="form-control" name="title" style="width: 770px;">
posts is not defined
-
글쓴이글
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
- 답변은 로그인 후 가능합니다.