를 추가 한 후 완료되지 I는 다음과 같습니다 jQuery를 통해 DELETE
요청을 보냅니다 코드 조각이있다. 내 app.js
파일에 내 프로그램을 사용할 수 MongoDB를 만들기 위해 다음 코드를 사용하여 한AJAX 요청 익스프레스 미들웨어
는 :
app.use((req, res, next) => {
mongo.connect('mongodb://localhost:27017/formulas', (e, db) => {
if (e) return next(e);
req.db = db;
next();
});
});
그러나, 나는 최근에 괄호의 마지막 한 쌍하기 전에 다음 코드 줄을 추가
req.on('end',() => { req.db.close(); });
이제 AJAX
요청의 SUCCESS
부분이 더 이상 작동하지 않습니다.
AJAX 요청이 응답을 기다리고 있고 마지막 줄이 클리핑되어 응답을받지 못하기 때문에 이것이라고 가정합니다. 따라서 success
은 호출되지 않습니다.
내 주요 문제는 무엇인가 삭제 된 후에 업데이트 된 항목 목록으로 페이지를 새로 고치기를 원합니다. 나는 이것이 어떻게 일어날 지 불가 지론이지만, 지금은 내 협상이 더 이상 효과가 없다. 도움이된다면
, 여기에 DELETE
요청을받은 서버 측 코드입니다 :
router.delete('/formula-list/:id', function(req, res){
var db = req.db.collection('users');
var f_id = new ObjectID(req.params.id);
db.updateOne({"_id": new ObjectID(req.user.id)}, { $pull: {
"formulas": {"f_id": f_id}
}}, function(err, r){
if(err) {throw err;}
assert.equal(null, err);
});
});
크롬 디버거의 네트워크 탭을보고 만약 그렇다면 그 반응이 무엇인지, 당신이 다시 아약스 호출에서 어떤 반응을 얻고 있는지 여부를 확인하고 :
이
트릭을했다. 먼저 클라이언트로 무엇이 돌아가고 있는지 또는 응답이 전송되지 않는지 여부를 알아야합니다. – jfriend00'res.send'를 부르시겠습니까?Btw, 연결을 닫으려고하거나 연결 콜백에서 req end 이벤트를 수신하기 전에 db가 req에 정의되어 있는지 확인해야합니다. –
요청에 대한 응답을 실제로 보내고있는 곳이 어디에도 표시되지 않습니다. 브라우저는 서버에서'res.send (...)'를하기 전까지 요청이 끝났음을 알지 못할 것입니다. 그래서 DB 작업이 끝나면 요청이 완료되었음을 알 수 있도록 클라이언트에게 다시 res.send()를 보내야한다. – jfriend00