게시 요청에서 두 가지 기능을 실행하려고 시도하지만 하나만 실행됩니다. 함수 makeEntry가 실행되지만 그 이후의 함수 renderEntries는 실행되지 않습니다. 누구든지 pls 수 있습니까? 다음은 코드입니다. https://codepaste.net/bpsxsyNode.js 함수가 하나만 실행되었습니다.
0
A
답변
2
이것은 자바에서 콜백이 작동하는 방식 때문입니다. 중요한 부분은 다음과 같습니다.
app.post('/guestbook_post', urlencodedparser, function(req, res){
makeEntry(req, res, Guestbook);
renderEntries(res, Guestbook);
});
두 기능에 모두 res
을 전달합니다. 그러나 makeEntry
은 res.send()
을 호출합니다. 이는 요청을 끝내고 응답을 클라이언트에 다시 보냅니다. 그러나 renderEntries
은 아직 실행되지 않았지만 여전히 이벤트 루프에서 대기 중입니다. 다음에 요청을 게시하면 실행될 것이므로 매우 혼란스럽고 버그가있는 행동으로 이어질 것입니다.
makeEntry
및
renderEntries
을 intendeed로 작동 한 번 클라이언트에 렌더링 확인하십시오. 다음과 같이 입력하십시오 :
app.post('/guestbook_post', urlencodedparser, function(req, res){
makeEntry(req, Guestbook, (err, entry) => {
renderEntries(entry, Guestbook, (err, result) => {
res.send(result);
});
});
});
+0
Thx이지만 사용자가 로그인하면 res.send()가 실행되지 않습니다. –
+0
별도로 제기 할 수있는 또 다른 질문입니다. "하나의 기능 만 실행되었습니다"라는 문제를 해결하면이 질문을 "수락 됨"으로 표시하십시오. –
관련 문제
- 1. 두 개의 jQuery 코드가 있지만 하나만 실행되었습니다.
- 2. 대기중인 유틸리티 콜백 함수가 실행되었습니다.
- 3. jquery 함수가 두 번 이상 실행되었습니다.
- 4. 각도 범위 함수가 여러 번 실행되었습니다.
- 5. Node.js 함수가 변수
- 6. Node.js TypeError : undefined가 함수가 아닙니다.
- 7. TypeError : sql.Connection은 함수가 아닙니다. Node.js
- 8. Node.js. Http.get() 함수가 응답하지 않습니다.
- 9. firebase.auth.signInWithCustomToken이 (가) node.js 함수가 아닙니다.
- 10. node.js extends foo가 함수가 아닙니다.
- 11. res.json이 Node.js 모듈의 함수가 아닙니다.
- 12. 두 개의 동일한 함수가 하나만 발생합니다.
- 13. ExtJS 버튼에서 setHandler를 사용할 때, 핸들러 함수가 즉시 실행되었습니다.
- 14. 허드슨 작업이 잘못된 사용자로 실행되었습니다.
- 15. Node.js/q이 함수가 호출되지 않는 이유는 무엇입니까?
- 16. 함수가 끝난 후 node.js worker를 죽이는 것
- 17. TypeError : tagGroupString.split이 함수가 아닙니다 + node.js + cucumber
- 18. nexpect 모듈의 Node.js 대기 함수가 작동하지 않습니다.
- 19. Node.js 콜백 블록이없는 async 함수가 메인 스레드입니까?
- 20. 콜백 함수가 비동기로 실행되는 Node.js 함수
- 21. Node.js 몽구스 정적 함수가 호출되지 않음
- 22. Node.js : 입력 오류 : Notes.addNote가 함수가 아닙니다.
- 23. Node.JS 람다 함수가 JSON을 반환하지 않습니다.
- 24. Javascript/Node.js "함수 이름"은 함수가 아닙니다.
- 25. TypeError : require (...)가 함수가 아닙니다 (Node.js) [server.js]
- 26. Node.js npm mssql 함수가 undefined를 반환합니다.
- 27. Node.js 및 mongodb TypeError : undefined가 함수가 아닙니다.
- 28. return node.js-mysql 함수가 결과로 반환
- 29. Node.js 오류 TypeError : 객체가 콜백의 함수가 아닙니다.
- 30. 콜백이 완료되기 전에 socket.io 함수가 반환됩니다. Node.js
자세한 정보를 제공해 주시겠습니까? 어떤 오류가 발생할 수 있습니까? 사용자가 로그인하지 않은 경우 발생합니까? – Kostas
사용자가 로그인하지 않으면 send()가 실행되고 renderEntries()없이 응답이 수행됩니다. 그러나 renderEntries는 사용자가 로그인하면 실행되지 않으며 res.send()는 실행되지 않습니다. –
두 함수는 모두 실행되지만 게시물은 –