9 글 보임 - 1 에서 9 까지 (총 9 중에서)
-
글쓴이글
-
2023년 1월 13일 12:29 #62450
김민수참가자라우터로 분리하고 MongoClient.connect 를 쓰기위해 app.db = db;설정하고 req.app.db.collection 이런식으로 가져다가 썼는데 리스트 추가는 되는데 ajax로 요청한 삭제는 적용이 안되네요....ㅠㅠ 근데 서버js에서는 또 되고요 라우터에서 쓰고 싶은데 방법이 있을까요?? router.delete("/delete", (req, res)=>{ req.app.req.body._id = parseInt(req.body._id); db.collection("todotask").deleteOne(req.body, (err, result)=>{ }) res.send("삭제완료") })
2023년 1월 13일 20:06 #62523
김민수참가자선생님 req.body._id 를 적용해도 안됩니다 ㅠㅠ router.delete("/delete", (req, res)=>{ req.body._id = parseInt(req.body._id); db.collection("todotask").deleteOne(req.body, (err, result)=>{ }) }) $(".delete").click(function(e){ let num = e.target.dataset.id; let on1 = $(this); $.ajax({ method : "DELETE", url : "/delete", data : {_id : num } }).done(function(result){ on1.parent("li").fadeOut() location.reload() }) }) .fail(function(xhr,textStatus,errorThrown){//실패 했을 경우 원인 분석 console.log(xhr,textStatus,errorThrown) })
2023년 1월 14일 11:33 #62603
김민수참가자그래도 안됩니다. routes => todo/js
const express = require("express");
var moment = require('moment-timezone'); moment.tz.setDefault("Asia/Seoul");
const app = express();
const router = express.Router();
router.get("/", (req,res)=>{ console.log("--------todo------"); req.app.db.collection("todotask").find().toArray((err, result)=>{ console.log(result) res.render("todo",{todotasks: result}) }) }) //작성 router.post("/write" , (req, res)=>{ req.app.db.collection('counter').findOne({name: "게시글"}, (err,result)=>{ var total = result.totalPoint
console.log(req.body.content) req.app.db.collection("todotask").insertOne({_id : total + 1, content : req.body.content},(err, result)=>{ req.app.db.collection("counter").updateOne({name:"게시글"},{$inc: {totalPoint : 1}},(err,result)=>{ if(err){return console.log(err)} }) res.redirect("/todo"); }) }) })
router.get("/edit/:id", (req,res)=>{ req.app.db.collection("todotask").findOne({_id :parseInt(req.params.id)}, (err, result)=>{ console.log(result)//에러코드 꼭 작성하기 res.render("edit.ejs",{todotasks: result}) }) }) router.delete("/delete", (req, res)=>{ req.body._id=parseInt(req.body._id); req.app.db.collection("todotask").deleteOne(req.body, (err, result)=>{ res.send("삭제완료") }) })
module.exports = router; routes => index.js
const express = require("express"); const app = express(); const router = express.Router();
//Main router.get("/", (req, res)=>{ res.render("main"); });
//Todo Router const TodoRouter = require("./todo");
//chat const ChatRouter = require("./chat/chat")
//game const GameRouter = require("./game/game")
// Refactoring router.use("/todo" , TodoRouter); router.use("/chat", ChatRouter); router.use("/game", GameRouter)
module.exports = router;
app.js
//모듈 const express = require("express"); const bodyParser = require("body-parser"); const MongoClient = require("mongodb").MongoClient; const path = require("path"); const methodOverride = require('method-override')
//서버 const app = express(); //4000: todo const chatApp = express(); //4001: chat
//채팅 서버 세팅 const http = require("http").createServer(chatApp); const io = require("socket.io")(http); module.exports = io;
chatApp.set("view engine", "ejs"); chatApp.engine("html", require("ejs").renderFile); chatApp.set("views", path.join(__dirname, 'views'));
chatApp.use("/public", express.static(__dirname + '/public'));
//setting -view , static ,body parser app.set("view engine", "ejs"); app.set("views", path.join(__dirname, 'views')); app.engine("html", require("ejs").renderFile);
app.use("/public", express.static(__dirname + '/public')); app.use(methodOverride("_method")) app.use(express.urlencoded({extended: true}))
//Router Setting const router = require("./routes/index"); chatApp.use(router); app.use("/",router)
// Chat Server Open http.listen(4001, () => { console.log("Chat Server listening on port 4001!"); })
//connet to DB var db; MongoClient.connect("mongodb+srv://user_06:admin06@cluster0.zgcjhqh.mongodb.net/?retryWrites=true&w=majority",(err,client)=>{ if(err) return console.log("----error----"); db = client.db('todoapp') app.db = db;
app.listen("4000", ()=>{ console.log("listening on 4000") }) })
router.put("/edit", (req,res)=>{ db.collection("todotask").updateOne({_id: parseInt(req.body.id)},{$set : {content : req.body.content}},(err, result)=>{ if(err){ console.log("---------puterr-------") } console.log("수정완료") res.redirect("/todo") }) })
2023년 1월 14일 11:37 #62607
김민수참가자라우터폴더에서 put 과 delete 가 안먹고 이걸 라우트 말고 메인서버에만 올려야 먹습니다..... 선생님이 말씀하신대로 다 해봤지만 계속 안먹히네요 ㅠㅠ
2023년 1월 14일 21:29 #62689
codingapple키 마스터delete요청받으면 req.body는 의도대로 잘 출력되나 확인해봅시다 안되면 post요청으로 바꾸면 됩니다
-
글쓴이글
9 글 보임 - 1 에서 9 까지 (총 9 중에서)
- 답변은 로그인 후 가능합니다.