node.js - tutorial - node lts
La respuesta de FineUploaderJSON no contiene éxito en la devolución de llamada completa (1)
Después de disparar el método onComplete, descubrí que mi variable responseJSON no parece contener la información que esperaba. ¿Me estoy jodiendo en algún lado (probablemente), o algo no funciona del todo bien? FineUploader está reconociendo una carga exitosa, así que sé que está obteniendo la respuesta, pero cuando registro responseJSON en el onComplete, imprime "responseJSON:". Solo el nombre del archivo. sin llaves, corchetes, etc.
Código del lado del cliente
uploader = new $("#collaboration-fine-uploader").fineUploader
autoUpload: false
multiple: false
validation:
allowedExtensions: [''pdf'', ''doc'', ''docx'', ''ppt'', ''pptx'', ''xls'', ''xlsx'']
sizeLimit: 1024*1024*1024*10 # 10MB
text:
uploadButton: "<i class=''icon-plus icon-white''></i> Select Files"
request:
endpoint: "/files/discussions/collaborations/upload"
uploader.on "complete", (id, fileName, responseJSON) ->
console.log "responseJSON: "+responseJSON
if (responseJSON.success)
discussionId = responseJSON.discussionId
$.ajax
type: "GET"
url: "/courses/"+serverData.course._id+"/discussions/"+discussionId
beforeSend: (xhr) ->
xhr.setRequestHeader ''x-pjax'', ''true''
success: (html) ->
# Replace the old html
$(".discussions-tab").html html
$(".new-discussion").slideUp()
$("#new-discussion-modal").deactivateModal()
# History push
window.history.pushState window.history.state, "Discussions", "/courses/"+serverData.course._id+"/discussions/"+discussionId
# Scroll to top
$.scrollTo 0
Código de respuesta del lado del servidor (solo la parte necesaria)
response =
"success": true
"discussionId": discussion.id
console.log JSON.stringify response
res.send JSON.stringify response
EDITAR: También he agregado un registro al archivo FineUploader-3.3.0.js, y está recibiendo el objeto JSON correcto, simplemente no lo está devolviendo correctamente por algún motivo.
El primer parámetro en el método onComplete es en realidad el evento, por lo que realmente está haciendo referencia a fileName
con responseJSON
. Si cambias los parámetros de tu método para incluir el evento, creo que debería funcionar.
uploader.on "complete", (event, id, fileName, responseJSON)