Ich versuche, einen Download von einem POST-Anfrage-Handler in Koa mit koa-router
auszulösen. Im Wesentlichen, ich versuche, so etwas zu tun:Laden Sie eine Datei von POST-Anfrage in Koa
app.js
const Koa = require('koa')
const router = require('./router')
const app = new Koa()
app.use(router.routes())
app.use(router.allowedMethods())
app.listen(3000)
router.js
const fs = require('fs')
const Router = require('koa-router')
const router = new Router()
router.post('/generate', function *() {
const path = `${__dirname}/test.txt`
this.body = fs.createReadStream(path)
this.set('Content-disposition', 'attachment; filename= test.txt')
})
module.exports = router
Client.js
const { fetch } = window;
const request = {
method: 'POST',
body: JSON.stringify({ fake: 'data' })
}
// Make the POST request
fetch('/generate', request)
Wenn die POST-Anforderung gesendet wird, passiert jedoch nichts. Ich bekomme auch keinen Fehler in der Server-Konsole oder der Browser-Konsole. Jede Hilfe wäre willkommen!
Ich denke, Ihr Problem nicht auf serverseitigen Code ist aber clientseitige. Können Sie zeigen, was Sie mit den abgerufenen Daten machen? Fetch funktioniert nicht als Formularübergabe, SIE müssen die Antwort verarbeiten und wenn Sie es herunterladen möchten, tun Sie, was Vedran auf seinem clientseitigen Code getan hat. –