Quiero hacer lo siguiente:
uploads.forEach(function(object){ res.json({ sessionId: object.sessionId, fileId: object.id, path: `${baseUrl}/sessions/${object.sessionId}/files/${object.id}/tokens` }); });Mi respuesta se ve bien hasta ahora:
{ "sessionId": "9ff1c415-2dcc-4505-8414-4391967064bc", "fileId": "510647c3-62fc-4412-b189-a6b872606f10", "path": "http://localhost:3001/sessions/9ff1c415-2dcc-4505-8414-4391967064bc/files/510647c3-62fc-4412-b189-a6b872606f10/tokens" }Pero me sale un error en mi consola:
Error: no se pueden establecer encabezados después de enviarlos.
Entonces, ¿cómo evito ese error?
res.json finalizará el ciclo de solicitud/respuesta, por lo que no creo que pueda poner esto en un forEach, ya que intentará emitir una respuesta después de que uno ya se haya disparado. (Es por eso que el error sobre los encabezados porque se enviaron durante la primera iteración del bucle for y la siguiente iteración intenta cambiarlos, lo que no está permitido porque ya no están allí; la respuesta ya se dejó para el cliente)
En su lugar, intente llenar una matriz de objetos en su 'forEach'. luego pase esto a su objeto de respuesta fuera del bucle.
var data = [] uploads.forEach(function(object){ data.push({ sessionId: object.sessionId, fileId: object.id, path: `${baseUrl}/sessions/${object.sessionId}/files/${object.id}/tokens` }); }); res.json(data);