El error me dice "No se pueden establecer encabezados después de que se envían al cliente"
async function saveFile(file) { await ipfs.add(file, (err, result) => { if (err){ console.log(err); } console.log(result); }); } app.post('/upload', async (req, res) => { const file = req.files.file; const fileName = req.body.fileName; const filePath = 'files/' + fileName; console.log(file); const fileHash = saveFile(JSON.stringify(file)); res.send(fileHash); res.render('pages/upload.ejs', { fileName, fileHash }); });Tengo problemas para encontrar la documentación de ipfs.add() en la documentación de js-ipfs, por lo que el siguiente código es una suposición.
Cuando usa await con una función asíncrona, generalmente no proporciona una devolución de llamada. El valor será devuelto por await y los errores se convertirán en excepciones, así que uso try/catch alrededor de él.
saveFile() necesita devolver el hash del archivo devuelto por ipfs.add() , y debe usar await al llamar a saveFile para obtener el valor devuelto.
async function saveFile(file) { try { let result = await ipfs.add(file); console.log(result); return result; } catch (err) { console.log(err); } } app.post('/upload', async(req, res) => { const file = req.files.file; const fileName = req.body.fileName; const filePath = 'files/' + fileName; console.log(file); const fileHash = await saveFile(JSON.stringify(file)); res.send(fileHash); res.render('pages/upload.ejs', { fileName, fileHash }); });