-
글쓴이글
-
2023년 1월 2일 22:26 #60659
이해욱참가자server.js
app.get('/write',function(req, res){ res.render('write.ejs'); }) app.post('/add', function(req, res){ var id= parseInt(req.body.id); console.log(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}); } }) } }) })
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> <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 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> </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>
에러
eferenceError: C:\Users\atolo\Desktop\server\node\views\write.ejs:28 26| <form action="/add" method="POST"> 27| >> 28| <input value="<%= posts.id %>" name="id" style="display : none"> 29| <label>제목</label> 30| <input type="text" class="form-control" name="title" style="width: 770px;"> 31| <label>내용</label> posts is not defined write.post 할떄 꼭 이 id값을 받고싶은데 posts is not defined 에러가 뜹니다
2023년 1월 3일 11:13 #60766
이해욱참가자글번호를 입력해주고 싶어서 그럽니다 ㅠㅠ id는 어차피 자동으로 올라가긴 하는데 그냥 저 코드가 뭐가 문제진 알고싶습니다 ㅠㅠㅠ
2023년 1월 3일 13:34 #60791
이해욱참가자server.js
const express =require('express'); const app = express(); app.use('/public', express.static('public'))
const bodyParser= require('body-parser');
app.use(express.json()); app.use(bodyParser.urlencoded({extended: false}));
app.set('view engine', 'ejs');
const passport = require('passport'); const LocalStrategy = require('passport-local').Strategy;
const mysql = require('mysql2'); const methodOverride = require('method-override'); app.use(methodOverride('_method'));
const connection = mysql.createConnection({ host : 'localhost', user : 'root', password : '*****8', database : 'moonserver' });
var session = require("express-session"); var MySQLStore = require('express-mysql-session')(session); app.use( session({ secret: 'g#1234!@#$asd', resave: false, saveUninitialized: true, store:new MySQLStore({ host:'localhost', port:3306, user:'root', password:'*****', database:'moonserver' }) }) );
app.use(passport.initialize()); app.use(passport.session());
2023년 1월 3일 16:07 #60813
codingapple키 마스터서버에서 ejs 파일 보낼 때 posts라는 변수는 안보냈는데 ejs파일에선 쓰고 있어서 그렇습니다 app.post에있는 body.id 이런것도 다 지웁시다
2023년 1월 3일 18:45 #60864
이해욱참가자server.js app.get('/write',function(req, res){ var id= parseInt(req.body.id); console.log(id); var sql = 'SELECT id, title, content FROM post WHERE id=?'; connection.query(sql,[id],function(err,topics){ console.log(topics); res.render('write.ejs',{posts : topics}); }) })
app.post('/add', function(req, res){ var id= parseInt(req.body.id); console.log(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}); } }) } }) }) write.ejs <form action="/add" method="POST"> <input 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> 에러 eferenceError: C:\Users\atolo\Desktop\server\node\views\write.ejs:28 26| <form action="/add" method="POST"> 27| >> 28| <input value="<%= posts.id %>" name="id" style="display : none"> 29| <label>제목</label> 30| <input type="text" class="form-control" name="title" style="width: 770px;"> 31| <label>내용</label> posts is not defined 글 post 할때 글 번호 id값을 꼭 받고싶습니다 도대체 왜 req.body.id 가 안받아지는지 모르겠씁니다
2023년 1월 4일 16:29 #61022
이해욱참가자새글 발행할시 req.body.id 는 무슨일이 있어도 받을수없는건가요? 지금 mysql FOREIGN KET 추가 해서 post.numberid 에 login.id 를 연결시키고싶습니다
server.js app.post('/add', function(req, res){ var sql2='SELECT * FROM post INNER JOIN login ON id=numberid'; connection.query(sql2, function(err, posts){ console.log(posts); var title = req.body.title; var content = req.body.content; var numberid = parseInt(req.body.id); console.log(numberid); var sql = 'INSERT INTO post (title, content, numberid) VALUES(?, ?, ?)'; connection.query(sql, [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}); } }) } }) }) }) write.ejs <form action="/add" method="POST"> <input value="<%= posts.id %>" name="id" style="display : none;"> <label>제목</label> <input type="text" class="form-control kim" 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> 에러
ReferenceError: C:\Users\atolo\Desktop\server\node\views\write.ejs:28 26| <form action="/add" method="POST"> 27| >> 28| <input value="<%= posts.id %>" name="id" style="display : none;"> 29| <label>제목</label> 30| <input type="text" class="form-control kim" name="title" style="width: 770px;"> 31| <label>내용</label>
posts is not defined
req.body.id 를 받아와야 numberid 값에 id를 넣고싶은데 req.body.id 를 못받아와서 지금 몇시간째 삽질만 하는중입니다. ㅠㅠ 생각해보니 app.post에서 id값 가져오는건 의미가 없겠네요 Mysql 결제해서 강의들었는데 서버쪽의 예시가 별로없어서 좀 헷갈리네요 post.numberid 에 login.id 값을 넣을 방법이 뭐가있을까요?
2023년 1월 4일 19:23 #61050
codingapple키 마스터passport 설치 잘해놨으면 로그인된 유저들은 app.post안에서 req.user 출력해보면 유저정보 담겨있습니다
2023년 1월 4일 20:19 #61063
이해욱참가자server.js app.post('/add', function(req, res){ var sql2= 'SELECT * FROM post INNER JOIN login ON id=numberid'; connection.query(sql2, function(err, result){ var title = req.body.title; var content = req.body.content; var numberid = req.user.id; console.log(numberid); var sql = 'INSERT INTO post (title, content, numberid) VALUES(?, ?, ?)'; connection.query(sql, [title, content, numberid], function(err, result2){ 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}); } }) } }) }) }) 에러 undefined Error: Column 'numberid' cannot be null 일단 로그인 회원가입 로그아웃은 기능 잘됩니다 근데 왜 req.user 가 undefined 값을 못 받을까요 참고로 app app.post('/add', function(req, res){ 는 passport 설정 아래에다 작성했습니다 passport 설정 문제인가요?
-
글쓴이글
- 답변은 로그인 후 가능합니다.