익스프레스 프레임 워크를 사용하여 res.send()
에서 이상한 동작이 나타납니다. 이것은 에러 또는 결과 객체를 수신하거나익스프레스 (node.js) - res.send는 응답 부분 만 보냄
user.register(function(err, result) {
console.log(JSON.stringify(err || result));
res.send(JSON.stringify(err || result));
});
:
여기에 내 함수이다.
{"name":"AuthError","message":"Password confirmation does not match original password","code":36}
클라이언트가받은 응답은 그러나 :
{"name":"AuthError","message":"Password confirmation does not match
이 내가받을 수있는 오류 발생 여기 console.log()
에서 예입니다. 나는 왜 이것이 단순한 JSON 문자열을 보내려고하는지 이해하지 못한다. 아무도 이것이 가능한 원인을 알 수 있습니까?
편집 : 나는이 문제를 해결했지만 누군가가 뒤에 이유를 설명 할 수 있다면 나는 감사 드리겠습니다.
오류가 발생할 때마다 user.register()
기능을 종료하는 것을 잊었으며 계속해서 데이터베이스를 쿼리했습니다. 일단 함수가 적절하게 종료되었다고 확신하게되면 응답은 전체적으로 수신됩니다 ... 그러나 이것에 대한 원인은 무엇입니까?
복수 res.send()
은 첫 번째 호출이 끝나기 전에 호출 되었기 때문에 (user.register()
함수는 적절하게 종료하지 않으면 여러 콜백 호출을 수행합니다)? 콘솔에 예외가 기록되지 않았습니다.
'res.send'를 호출하기 전에 객체를 문자열화할 필요가 없습니다. 그것은 당신을 위해 그것을 수행하고 Content-Type을 적절하게 설정합니다. – josh3736
@ josh3736 매우 감사합니다. –
그러면 응답 JSON이 클라이언트에서 잘린 것을 확인 했습니까? 브라우저 콘솔/디버거 또는 다른 것을 확인 했습니까? – Pointy