express에서 다음 라우트가 호출되면 실제로 6 회 실행됩니다. console.log가 6 번 인쇄되고 mongoose 논리가 6 번 실행됩니다 (데이터베이스에 6 시간 저장).여러 번 호출 된 Http 라우트
그런 다음 cloud9ide에서 http 500이 반환되었습니다. "프록시 요청을 보낼 수 없습니다". 정말 혼란스럽고 코드에 루프가 없습니다. 어떻게 될 수 있습니까? console.log ("in else (2)"); 6 번 인쇄 해.
편집 : mongooseLogic 코드를 주석 처리하여 여러 부분을 시도했지만 문제가 여전히있었습니다. 이것은 마치 몽구스 문제가 아닌 것처럼 보입니다.
두 번째 편집 : 전송할 본문을 가져 와서 하드 코드 한 게시물이 변경되어 경로가 한 번만 실행되었습니다.
세 번째 편집 : 나는 또한 facebook oauth로 세션/인증을 위해 모든 인증을 사용하고 있습니다. mongooseLogic 파일에
app.post("/result/:userId/:elementId", function(req, res) {
var receivedJSON = req.body;
console.log("In route");
//Making sure the receive request is valid
if(typeof(receivedJSON.type) !== undefined) {
mongooseLogic.saveResults(req.params.elementId, receivedJSON, req.params.userId, function(message) {
if(message === "Success") {
res.json({ success: true, message: 'Result saved.'});
}
else {
res.json({ success: false, message: 'Error in saving results. Trace: ' + message});
}
});
}
else {
res.json({ success: false, message: 'Failed, Invalid object sent to server'});
}
});
코드 :
var saveResults = function(elementRefId, receivedResult, userId, callback){
if(elementRefId.toString().length !== 24){
callback("Invalid objectId for elementId");
}
else{
Result.findOne({ "id" : userId, "serieResult.id": elementRefId }, function(err, result){
if(err){
callback("No Document found: " + err);
}
else if(result === null){
console.log("in null");
var tempResult = {
id : elementRefId,
unit : receivedResult.unit,
value : receivedResult.value
}
Result.update({ "id" : userId}, { $push: {"serieResult": tempResult}}, {upsert: true}, function(err){
if(err){
callback("Error in saving result (Distance): " + err);
}
else{
callback("Success");
}
});
}
else{
Result.update({ "id" : userId, "serieResult.id": elementRefId },
{ $set:{
"serieResult.$.unit" : receivedResult.unit,
"serieResult.$.value" : receivedResult.value,
},{upsert: true}, function(err){
if(err){
callback("Cant update doc: " + err);
}
else{
console.log("in else (2)");
callback("Success");
}
});
}
});
}
}
}
클라이언트 코드에서 이것을 어떻게 호출합니까? cURL로 이것을 재현 할 수 있습니까? –
아약스 (jquery get json)는 Google 크롬 디벨로퍼 도구에서 쿼리를 검사했기 때문에 한 번만 호출됩니다. – guiomie
사용자 이름/프로젝트 이름을 [email protected]로 전자 메일로 보내 주시면이 문제를 디버그하도록 도와 드릴 수 있습니까? –