-
글쓴이글
-
2023년 3월 22일 18:12 #73214
chaey참가자submit 버튼 클릭시 페이지가 작동하지 않습니다. 문제가 계속되면 사이트 소유자에게 문의하세요.
HTTP ERROR 405 에러가 뜹니다.... 이틀째 이부분 해결이 안됩니다. 도와주세요
-server.js const express = require("express"); const app = express(); const bodyParser = require("body-parser"); app.use(bodyParser.urlencoded({ extended: true }));
const MongoClient = require("mongodb").MongoClient; var db; MongoClient.connect( "mongodb+srv://admin:@cluster0.zb68zx8.mongodb.net/?retryWrites=true&w=majority", function (에러, client) { if (에러) return console.log(에러); db = client.db("todoapp"); db.collection("post").insertOne( { 이름: "chaey", _id: 100, 나이: 27 }, function (에러, 결과) { console.log("저장완료"); } );
app.listen(8000, function () { console.log("listening on 8000"); }); } ); app.get("/", function (요청, 응답) { 응답.sendFile(__dirname + "/index.html"); });
app.get("/write", function (요청, 응답) { 응답.sendFile(__dirname + "/write.html"); });
app.post("/newPost", function (요청, 응답) { 응답.send("전송완료"); console.log(요청.body.date); console.log(요청.body.title); });
-index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous" />
<title>Hello, world!</title> </head>
<body> <nav class="navbar navbar-expand-lg navbar-light bg-light"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo03" aria-controls="navbarTogglerDemo03" aria-expanded="false" aria-label="Toggle navigation" > <span class="navbar-toggler-icon"></span> </button> Todo App
<div class="collapse navbar-collapse" id="navbarTogglerDemo03"> <ul class="navbar-nav mr-auto mt-2 mt-lg-0"> <li class="nav-item active"> <a class="nav-link" href="#" >Home <span class="sr-only">(current)</span></a >
<li class="nav-item"> Write
<li class="nav-item"> 임시
<form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search" /> <button class="btn btn-outline-success my-2 my-sm-0" type="submit"> Search </button> </form> </div> </nav> <div class="jumbotron"> <h1 class="display-4">Home</h1> <p class="lead">Todo 일정을 확인해보세요!</p> <hr class="my-4" /> <p>What's today's check? Don't forget what to do today!</p> Learn more </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous" ></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous" ></script> </body> </html>
-write.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" /> <title>Document</title> </head> <body> <nav class="navbar navbar-expand-lg navbar-light bg-light"> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo03" aria-controls="navbarTogglerDemo03" aria-expanded="false" aria-label="Toggle navigation" > <span class="navbar-toggler-icon"></span> </button> Todo App
<div class="collapse navbar-collapse" id="navbarTogglerDemo03"> <ul class="navbar-nav mr-auto mt-2 mt-lg-0"> <li class="nav-item active"> <a class="nav-link" href="#" >Home <span class="sr-only">(current)</span></a >
<li class="nav-item"> Write
<li class="nav-item"> 임시
<form class="form-inline my-2 my-lg-0"> <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search" /> <button class="btn btn-outline-success my-2 my-sm-0" type="submit"> Search </button> </form> </div> </nav> <h4 class="container mt-4">글 작성페이지</h4> <div class="container mt-3"> <form action="/newPost" method="POST"> <div class="form-group"> <label>오늘의 할일</label> <input type="text" class="form-control" name="title" /> </div> <div class="form-group"> <label>날짜</label> <input type="text" class="form-control" name="date" /> </div> <button type="submit" class="btn btn-outline-secondary">Submit</button> </form> </div> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous" ></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous" ></script>
<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> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous" ></script> </body> </html>
2023년 3월 22일 19:38 #73224
codingapple키 마스터코드는 별 문제 없습니다 localhost:8000/write 로 잘 접속해서 폼전송중인지 nodemon으로 서버는 띄워놨는지 확인해봅시다
2023년 3월 23일 20:18 #73380
chaey참가자알려주신대로해서 해결했습니다 감사합니다ㅠㅠㅠㅠㅠㅠ! 근데 왜 nodmon으로 띄워야하고 , live server에서는 작동하지 않는 것인지 궁금합니다. 또, 이번에는 console.log(요청.body.title); 에서 title입력시 값이 할당이 안되고 터미널에undefined가 뜹니다. extended를 false로도 바꿔보고 app.use(express.json());도 추가했는데도 값이 반환되지않습니다. server.js
const express = require("express"); const app = express(); const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false })); app.use(express.json());app.listen(8000, function () { console.log("listening on 8000"); });
app.get("/", function (요청, 응답) { 응답.sendFile(__dirname + "/index.html"); });
app.get("/write", function (요청, 응답) { 응답.sendFile(__dirname + "/write.html"); });
// app.post("경로", 콜백함수); app.post("/sendWrite", function (요청, 응답) { 응답.send("전송완료"); console.log(요청.body.title); console.log(요청.body.date); });
-
글쓴이글
- 답변은 로그인 후 가능합니다.