2016-06-24 2 views
0

response 개체를 사용자 고유의 값으로 장식하는 규칙이 있습니까?http의 응답 개체에 대한 사용자 지정 속성

저는 하나의 값만 반환 할 수있는 약속을 사용하고 있는데 bodyresponse 개체를 모두 반환해야하는 상황에 처해 있습니다.

나는 형식의 개체를 만들려고했지만 행복하지 않았습니다.

response.body = body 
resolve(response); 

resolve({body: body, response: response}) 

또는

내가 너무 영감에 대한 res.locals을 가로 질러왔다.

나는 어떻게 든이 body가 자동으로 채워 아니라 수있을 수 있습니다 response 객체의 속성을 조회하려고 예를

response.locals = {}; 
response.locals.body = body 
resolve(response); 

위해 채울 수있는 응답 객체의 속성을 발견하는 것을 바랬다. 최고를 위해 조언하십시오. 질문 expressjs과 혼동있어 경우

편집

죄송합니다, 그것은 require('https')response 객체입니다.

답변

1

일반적으로 약속의 경우 여러 값을 반환하는 일반적인 방법은 배열에 넣고 배열로 해결하거나 개체에 넣은 다음 개체로 해결하는 것입니다. 왜 당신이 불행한 지 정확히 알지 못합니다.

resolve({body: body, response: response}) 

이것이 복수의 명명 된 값으로 약속을 해결하는 일반적인 방법입니다. ES6에서는 다음과 같이 단축 할 수도 있습니다.

resolve({body, response}) 

이것은 동일한 객체 정의의 구문 바로 가기입니다. 표준 속성이나 다른 코드를 사용하고있는 특성을 가진 속성 이름이 충돌되지 않도록주의하면서의 일반적인주의와


, 당신은 response 객체에 사용자 정의 속성을 추가 무료입니다. 이 객체는이 특정 응답 기간 동안 만 존재하므로 추가하는 모든 속성은이 응답 처리 기간 동안 만 일시적입니다.

그래서, 두 번째 옵션은 너무 완벽하게 괜찮 : 미래 증거에 관해서는

response.body = body 
resolve(response); 

, 사용자 정의 개체를 사용하여이 개체 이후 가장 미래의 증거입니다. 아무도 그걸 수정하지 않을 것이고 첫 번째 옵션과 이름 충돌의 기회는 없습니다.

response 개체에 속성을 추가 할 때 개체의 향후 디자인 및 발전을 방해하지 않는 사용자 지정 속성을 응답 개체에 추가하는 방법에 대한 합의가 없습니다.response._my_body과 같은 속성 이름에 고유 한 사용자 정의 접두어를 추가하면 실제로 안전 할 가능성이 높아집니다. 심지어 로컬에서 생성 된 ES6 심볼을 속성 이름으로 사용할 수도 있고 충돌을 전혀 일으키지 않을 수도 있습니다. 그래도 코드를 좀 더 못 생기게 만듭니다.

개인적으로 나는 내 자신의 개체로 해결하거나 내 자신의 사용자 지정 속성 이름 접두사를 만듭니다.

+0

불행하기 때문에 여러 객체를 다루고 싶지 않아 미래의'response' 객체로 증명할 수있는 무언가를 운동하려합니다. – user2727195

+2

@ user2727195 - 사용자 지정 개체로 해결하면 응답 개체에 사용자 지정 속성을 추가하지 않아 향후 해당 개체의 디자인과 발전을 방해 할 수 있습니다. 이제 두 가지 속성을 가진 사용자 지정 개체로 해결할 수 있습니다. 이제는 완전히 안전합니다. – jfriend00

+1

@ user2727195 - 개체의 향후 디자인 및 발전을 방해하지 않는 사용자 지정 속성을 응답 개체에 추가하는 방법에 대한 합의 된 규정이 없습니다. 정말로 '안전함'을 높이기 위해'response._my_body'와 같은 속성 이름에 사용자 정의 접두사를 추가하면 아마 안전 할 것입니다. 로컬로 생성 된 ES6 심볼을 속성 이름으로 사용하고 충돌이 없는지 100 % 확신 할 수도 있습니다. – jfriend00

관련 문제